[Jiemamy-notify] commit [1979] DatabaseImporterTestを通すことにより、色々バグ取り。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2008年 10月 2日 (木) 01:19:38 JST


Revision: 1979
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=jiemamy&view=rev&rev=1979
Author:   daisuke_m
Date:     2008-10-02 01:19:38 +0900 (Thu, 02 Oct 2008)

Log Message:
-----------
DatabaseImporterTestを通すことにより、色々バグ取り。

Modified Paths:
--------------
    artemis/trunk/org.jiemamy.composer/src/main/java/org/jiemamy/composer/importer/DatabaseImporter.java
    artemis/trunk/org.jiemamy.composer/src/test/java/org/jiemamy/composer/importer/DatabaseImporterTest.java
    artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/AbstractModel.java
    artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/connection/ForeignKeyModelImpl.java
    artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/datatype/AbstractDataType.java
    artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetConnectionsProcessor.java
    artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetEntityProcessor.java
    artemis/trunk/org.jiemamy.core/src/main/resources/jiemamy-core.dicon


-------------- next part --------------
Modified: artemis/trunk/org.jiemamy.composer/src/main/java/org/jiemamy/composer/importer/DatabaseImporter.java
===================================================================
--- artemis/trunk/org.jiemamy.composer/src/main/java/org/jiemamy/composer/importer/DatabaseImporter.java	2008-10-01 15:14:31 UTC (rev 1978)
+++ artemis/trunk/org.jiemamy.composer/src/main/java/org/jiemamy/composer/importer/DatabaseImporter.java	2008-10-01 16:19:38 UTC (rev 1979)
@@ -14,7 +14,6 @@
 
 import org.jiemamy.core.extension.dialect.DatabaseReadingContext;
 import org.jiemamy.core.interpreter.DatabaseReader;
-import org.jiemamy.core.model.connection.ForeignKeyMappingImpl;
 import org.jiemamy.core.utils.DriverUtil;
 import org.jiemamy.core.utils.JmIOUtil;
 import org.jiemamy.core.utils.visitor.AbstractResultSetVisitor;
@@ -181,7 +180,7 @@
 				if (entityModel != null) {
 					entityModel.setDescription(entity.getString("REMARKS"));
 					// UNDONE 制約などその他情報なども
-//					rootModel.getNodes().add(entityModel);
+					rootModel.appendModel(entityModel);
 				}
 			}
 			return null;
@@ -236,9 +235,10 @@
 					if (fkModel == null) {
 						fkModel = rootModel.createJiemamyModel(ForeignKeyModel.class).init(fkName, source, target);
 						fkModel.setName(fkName);
+						rootModel.appendModel(fkModel);
 					}
 					
-					ForeignKeyMapping mapping = new ForeignKeyMappingImpl();
+					ForeignKeyMapping mapping = rootModel.createJiemamyModel(ForeignKeyMapping.class);
 					mapping.setConstraintColumn(source.getColumn(fkColumnName));
 					mapping.setReferenceColumn(target.getColumn(pkColumnName));
 					

Modified: artemis/trunk/org.jiemamy.composer/src/test/java/org/jiemamy/composer/importer/DatabaseImporterTest.java
===================================================================
--- artemis/trunk/org.jiemamy.composer/src/test/java/org/jiemamy/composer/importer/DatabaseImporterTest.java	2008-10-01 15:14:31 UTC (rev 1978)
+++ artemis/trunk/org.jiemamy.composer/src/test/java/org/jiemamy/composer/importer/DatabaseImporterTest.java	2008-10-01 16:19:38 UTC (rev 1979)
@@ -43,6 +43,15 @@
 
 /**
  * {@link DatabaseImporter}のテストクラス。
+ * 
+ * <p>テストを実行する環境の前提:<br/>
+ * <ul>
+ *   <li>PostgreSQL Server稼働</li>
+ *   <li>user=postgres, pass=postgres</li>
+ *   <li>database=jpoll に JiemamyPollsのスキーマが存在すること</li>
+ * </ul>
+ * </p>
+ * 
  * @author daisuke
  */
 @RunWith(Seasar2.class)
@@ -72,10 +81,12 @@
 		
 		// FIXME 前者はComponentNotFoundRuntimeExceptionが飛ぶ。
 //		Dialect dialect = (Dialect) container.getComponent(Class.forName(model.getDialectClassName(), true, classLoader));
-		dialect = JiemamyModelFactory.createDialect("org.jiemamy.dialect.postgresql.PostgresqlDialect", classLoader);
+		dialect =
+				(Dialect) Class.forName("org.jiemamy.dialect.postgresql.PostgresqlDialect", true, classLoader)
+					.newInstance();
 		serialTypeClass =
-				JiemamyModelFactory.createDataType("org.jiemamy.dialect.postgresql.datatype.SerialDataType",
-						classLoader);
+				(DataType) Class.forName("org.jiemamy.dialect.postgresql.datatype.SerialDataType", true, classLoader)
+					.newInstance();
 	}
 	
 	/**
@@ -116,7 +127,8 @@
 		assertThat(pollTable.getName(), is("t_poll"));
 		assertThat(pollTable.getColumns().size(), is(11));
 		assertThat(pollTable.getColumns().get(0).getName(), is("poll_id"));
-		assertThat(pollTable.getColumns().get(0).getDataType(), is(serialTypeClass));
+		assertThat(pollTable.getColumns().get(0).getDataType().getClass().getName(), is(serialTypeClass.getClass()
+			.getName()));
 		System.out.println(pollTable.getColumns().get(0).getConstraints());
 		
 		// UNDONE DatabaseImporter.java:185 を実装したら

Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/AbstractModel.java
===================================================================
--- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/AbstractModel.java	2008-10-01 15:14:31 UTC (rev 1978)
+++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/AbstractModel.java	2008-10-01 16:19:38 UTC (rev 1979)
@@ -28,6 +28,10 @@
  */
 public abstract class AbstractModel implements JiemamyModel {
 	
+	/** 適用可能なアダプタのリスト */
+	@Binding("list")
+	protected List<Object> adapters;
+	
 	/**
 	 * モデルID
 	 * 
@@ -35,10 +39,6 @@
 	 */
 	private UUID id;
 	
-	/** 適用可能なアダプタのリスト */
-	@Binding("list")
-	private List<Object> adapters;
-	
 
 	/**
 	 * コンストラクタ。

Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/connection/ForeignKeyModelImpl.java
===================================================================
--- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/connection/ForeignKeyModelImpl.java	2008-10-01 15:14:31 UTC (rev 1978)
+++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/connection/ForeignKeyModelImpl.java	2008-10-01 16:19:38 UTC (rev 1979)
@@ -20,6 +20,8 @@
 
 import java.util.List;
 
+import org.seasar.framework.container.annotation.tiger.Binding;
+
 import org.jiemamy.core.utils.processor.connection.foreignkey.GetMappingProcessor;
 import org.jiemamy.core.utils.processor.connection.foreignkey.UpdateMappingsProcessor;
 import org.jiemamy.spec.model.ColumnModel;
@@ -48,6 +50,7 @@
 	private String logicalName;
 	
 	/** マッピングのリスト */
+	@Binding("list")
 	private List<ForeignKeyMapping> mappings;
 	
 	/** マッチ型 */

Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/datatype/AbstractDataType.java
===================================================================
--- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/datatype/AbstractDataType.java	2008-10-01 15:14:31 UTC (rev 1978)
+++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/datatype/AbstractDataType.java	2008-10-01 16:19:38 UTC (rev 1979)
@@ -18,6 +18,8 @@
  */
 package org.jiemamy.core.model.datatype;
 
+import java.util.ArrayList;
+
 import org.jiemamy.core.model.AbstractModel;
 import org.jiemamy.core.model.datatype.adapter.DataTypeAdapter;
 import org.jiemamy.spec.model.datatype.DataType;
@@ -29,6 +31,14 @@
 public abstract class AbstractDataType extends AbstractModel implements DataType {
 	
 	/**
+	 * コンストラクタ。
+	 * @category instance creation
+	 */
+	public AbstractDataType() {
+		adapters = (new ArrayList<Object>());
+	}
+	
+	/**
 	 * {@inheritDoc}
 	 */
 	public AbstractDataType removeAdapter() {

Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetConnectionsProcessor.java
===================================================================
--- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetConnectionsProcessor.java	2008-10-01 15:14:31 UTC (rev 1978)
+++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetConnectionsProcessor.java	2008-10-01 16:19:38 UTC (rev 1979)
@@ -34,6 +34,10 @@
 	private Class<T> clazz;
 	
 
+	/**
+	 * コンストラクタ。
+	 * @category instance creation
+	 */
 	public GetConnectionsProcessor() {
 		this(null);
 	}

Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetEntityProcessor.java
===================================================================
--- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetEntityProcessor.java	2008-10-01 15:14:31 UTC (rev 1978)
+++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetEntityProcessor.java	2008-10-01 16:19:38 UTC (rev 1979)
@@ -71,7 +71,8 @@
 		for (AbstractNodeModel node : rootModel.getNodes()) {
 			if (node instanceof AbstractEntityModel) {
 				AbstractEntityModel entiy = (AbstractEntityModel) node;
-				if (entityName.equals(entiy.getName()) && (clazz == null || clazz.isAssignableFrom(entiy.getClass()))) {
+				if (entityName.equalsIgnoreCase(entiy.getName())
+						&& (clazz == null || clazz.isAssignableFrom(entiy.getClass()))) {
 					entities.add(entiy);
 				}
 			}

Modified: artemis/trunk/org.jiemamy.core/src/main/resources/jiemamy-core.dicon
===================================================================
--- artemis/trunk/org.jiemamy.core/src/main/resources/jiemamy-core.dicon	2008-10-01 15:14:31 UTC (rev 1978)
+++ artemis/trunk/org.jiemamy.core/src/main/resources/jiemamy-core.dicon	2008-10-01 16:19:38 UTC (rev 1979)
@@ -10,6 +10,7 @@
 	<component class="org.jiemamy.core.model.node.ViewModelImpl" instance="prototype"/>
 	<component class="org.jiemamy.core.model.node.StickyModelImpl" instance="prototype"/>
 	<component class="org.jiemamy.core.model.connection.ForeignKeyModelImpl" instance="prototype" autoBinding="none"/>
+	<component class="org.jiemamy.core.model.connection.ForeignKeyMappingImpl" instance="prototype"/>
 	<component class="org.jiemamy.core.model.DomainModelImpl" instance="prototype" autoBinding="none"/>
 	<component class="org.jiemamy.core.model.dataset.InsertDataSetModelImpl" instance="prototype"/>
 	<component class="org.jiemamy.core.model.node.TableModelImpl" instance="prototype"/>


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