You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by jo...@apache.org on 2010/08/23 09:29:17 UTC
svn commit: r988008 - in /labs/jaxmas/trunk/JaxMas/src:
main/java/org/apache/labs/jaxmas/registry/schema/
main/java/org/apache/labs/jaxmas/registry/sql/
test/java/org/apache/labs/jaxmas/registry/schema/
Author: jochen
Date: Mon Aug 23 07:29:17 2010
New Revision: 988008
URL: http://svn.apache.org/viewvc?rev=988008&view=rev
Log:
Fixed loading of registry objects upon JOIN.
Modified:
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java
labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/schema/MacroProcessorTest.java
Modified: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql?rev=988008&r1=988007&r2=988008&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql (original)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql Mon Aug 23 07:29:17 2010
@@ -161,6 +161,7 @@ INSERT INTO Ids (name, nextValue) VALUES
&{Concept, 9, '00000000000000000000000000000030', '00000000000000000000000000000002', 'Replaces'}
&{Concept, 10, '00000000000000000000000000000031', '00000000000000000000000000000002', 'RelatedTo'}
&{Concept, 11, '00000000000000000000000000000032', '00000000000000000000000000000002', 'Supersedes'}
+&{Concept, 12, '00000000000000000000000000000051', '00000000000000000000000000000002', 'EmployeeOf'}
&{Concept, 0, '00000000000000000000000000000034', '00000000000000000000000000000033', 'AttributeTypes'}
&{Concept, 0, '00000000000000000000000000000035', '00000000000000000000000000000034', 'string'}
Modified: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java?rev=988008&r1=988007&r2=988008&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java (original)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java Mon Aug 23 07:29:17 2010
@@ -18,7 +18,6 @@
*/
package org.apache.labs.jaxmas.registry.sql;
-import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -41,13 +40,11 @@ import org.apache.labs.jaxmas.registry.a
import org.apache.labs.jaxmas.registry.accessor.ROAccessors.ObjectTypes;
import org.apache.labs.jaxmas.registry.infomodel.AssociationImpl;
import org.apache.labs.jaxmas.registry.infomodel.ClassificationImpl;
-import org.apache.labs.jaxmas.registry.infomodel.ConnectionImpl;
import org.apache.labs.jaxmas.registry.infomodel.KeyImpl;
import org.apache.labs.jaxmas.registry.infomodel.OwnedRegistryObject;
import org.apache.labs.jaxmas.registry.infomodel.ROState;
import org.apache.labs.jaxmas.registry.infomodel.RegistryEntryImpl;
import org.apache.labs.jaxmas.registry.infomodel.RegistryObjectImpl;
-import org.apache.log4j.Logger;
/**
@@ -55,7 +52,6 @@ import org.apache.log4j.Logger;
* objects.
*/
public class RegistryObjectLoader {
- private static final Logger log = Logger.getLogger(RegistryObjectLoader.class);
private static final TableHandler[] EXTENSION_HANDLERS_REGISTRY_OBJECT = new TableHandler[]{
new DefaultTableHandler()
};
@@ -561,8 +557,6 @@ public class RegistryObjectLoader {
sb.append(".roType=");
sb.append(objectType.ordinal());
}
- final Collection<FilterPredicate> predicates = q.getPredicates();
- appendToQuery(predicates, parameterList, objectTypeSep, sb, false);
} else {
sb.append(" FROM RegistryObjects ");
sb.append(table);
@@ -574,18 +568,22 @@ public class RegistryObjectLoader {
otTableHandlers[j].addJoin(sb, q.getPrefix(), parameterList);
}
}
- final RegistryObjectQuery q = queries[0];
- final ObjectTypes objectType = q.getObjectType();
- if (objectType != null) {
- final String table = getRoTable(q.getPrefix());
- sb.append(sep);
- sep = " AND ";
- sb.append(table);
- sb.append(".roType=");
- sb.append(objectType.ordinal());
+ {
+ final RegistryObjectQuery q = queries[0];
+ final ObjectTypes objectType = q.getObjectType();
+ if (objectType != null) {
+ final String table = getRoTable(q.getPrefix());
+ sb.append(sep);
+ sep = " AND ";
+ sb.append(table);
+ sb.append(".roType=");
+ sb.append(objectType.ordinal());
+ }
+ }
+ for (RegistryObjectQuery q : queries) {
+ final Collection<FilterPredicate> predicates = q.getPredicates();
+ appendToQuery(predicates, parameterList, sep, sb, true);
}
- final Collection<FilterPredicate> predicates = q.getPredicates();
- appendToQuery(predicates, parameterList, sep, sb, true);
appendToQuery(pOrderPredicates, parameterList, sb);
parameters = parameterList.toArray();
query = sb.toString();
@@ -682,7 +680,49 @@ public class RegistryObjectLoader {
if (rs != null) { try { rs.close(); } catch (Throwable t) { /* Ignore me */ } }
}
}
-
+
+ public List<RegistryObject[]> getResultArrayList(final RegistryService pService, final PreparedStatement pStmt)
+ throws JAXRException {
+ final List<RegistryObject[]> list = new ArrayList<RegistryObject[]>();
+ ResultSet rs = null;
+ try {
+ rs = pStmt.executeQuery();
+ while (rs.next()) {
+ final RegistryObject[] row = new RegistryObject[queries.length];
+ int index = 1;
+ for (int i = 0; i < row.length; i++) {
+ int type = rs.getInt(index+1);
+ assert(!rs.wasNull());
+ final ROAccessor<?> roAcc = ROAccessors.getROAccessor(type);
+ final String key = rs.getString(index+1);
+ assert(key != null);
+
+ final RegistryObjectImpl<?> ro = (RegistryObjectImpl<?>) roAcc.create(pService, new KeyImpl(key));
+ ro.setState(ROState.loaded);
+
+ final TableHandler[] tableHandlers = queries[i].tableHandlers;
+ index = tableHandlers[0].load(rs, ro, index);
+ row[i] = ro;
+ }
+ for (int i = 0; i < row.length; i++) {
+ final RegistryObject ro = row[i];
+ final TableHandler[] tableHandlers = queries[i].tableHandlers;
+ for (int j = 1; j < tableHandlers.length; j++) {
+ index = tableHandlers[j].load(rs, ro, index);
+ }
+ }
+ list.add(row);
+ }
+ rs.close();
+ rs = null;
+ return list;
+ } catch (SQLException e) {
+ throw new JAXRException(e);
+ } finally {
+ if (rs != null) { try { rs.close(); } catch (Throwable t) { /* Ignore me */ } }
+ }
+ }
+
private <RO extends RegistryObject> List<RegistryObject> getResultList(final RegistryService pRegistryService,
String pQuery, Object[] pParameters) throws JAXRException {
final List<RegistryObject> list = new ArrayList<RegistryObject>();
@@ -765,7 +805,7 @@ public class RegistryObjectLoader {
return qu.getResult();
}
- private void load(RegistryObject pRegistryObject, ResultSet pResultSet) throws SQLException, JAXRException {
+ private int load(RegistryObject pRegistryObject, ResultSet pResultSet) throws SQLException, JAXRException {
final RegistryObjectImpl<?> ro = (RegistryObjectImpl<?>) pRegistryObject;
ro.setState(ROState.loaded);
@@ -774,6 +814,7 @@ public class RegistryObjectLoader {
for (int i = 0; i < tableHandlers.length; i++) {
index = tableHandlers[i].load(pResultSet, pRegistryObject, index);
}
+ return index;
}
/**
@@ -811,19 +852,7 @@ public class RegistryObjectLoader {
return query;
}
- public PreparedStatement getPreparedStatement(javax.xml.registry.Connection pConnection) throws JAXRException {
- try {
- return getPreparedStatement(((ConnectionImpl) pConnection).getConnection());
- } catch (SQLException e) {
- throw new JAXRException(e);
- }
- }
-
- protected PreparedStatement getPreparedStatement(Connection pConnection) throws JAXRException, SQLException {
- final String query = getQuery();
- log.debug(query);
- final PreparedStatement stmt = pConnection.prepareStatement(getQuery());
- StmtUser.setParams(stmt, parameters);
- return stmt;
+ public Object[] getParameters() {
+ return parameters;
}
}
Modified: labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/schema/MacroProcessorTest.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/schema/MacroProcessorTest.java?rev=988008&r1=988007&r2=988008&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/schema/MacroProcessorTest.java (original)
+++ labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/schema/MacroProcessorTest.java Mon Aug 23 07:29:17 2010
@@ -80,6 +80,7 @@ public class MacroProcessorTest extends
/**
* Test for the &{macro, ...} definition.
+ * @throws IOException
*/
@Test
public void testMacroDefinition() throws IOException {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org