Changeset 982
- Timestamp:
- 08/28/10 21:55:08 (18 months ago)
- Location:
- AnalyzerBeans/trunk
- Files:
-
- 29 added
- 40 edited
- 2 moved
-
examples (added)
-
examples/employees.csv (added)
-
examples/employees_conf.xml (added)
-
examples/employees_job.xml (added)
-
generate_jaxb_model.sh (modified) (1 diff)
-
pom.xml (modified) (2 diffs)
-
src/main/java/org/eobjects/analyzer/beans/EmailStandardizerTransformer.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/cli (added)
-
src/main/java/org/eobjects/analyzer/cli/Main.java (added)
-
src/main/java/org/eobjects/analyzer/configuration (added)
-
src/main/java/org/eobjects/analyzer/configuration/AnalyzerBeansConfiguration.java (moved) (moved from AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/AnalyzerBeansConfiguration.java) (1 diff)
-
src/main/java/org/eobjects/analyzer/configuration/AnalyzerBeansConfigurationImpl.java (moved) (moved from AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/AnalyzerBeansConfigurationImpl.java) (1 diff)
-
src/main/java/org/eobjects/analyzer/configuration/JaxbConfigurationFactory.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/CompositeDatastoreType.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/Configuration.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/ConfigurationMetadataType.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/CsvDatastoreType.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/CustomTaskrunnerType.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/DatastoreCatalogType.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/JdbcDatastoreType.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/MultithreadedTaskrunnerType.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/ObjectFactory.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/SinglethreadedTaskrunnerType.java (added)
-
src/main/java/org/eobjects/analyzer/configuration/jaxb/package-info.java (added)
-
src/main/java/org/eobjects/analyzer/connection/CompositeDatastore.java (added)
-
src/main/java/org/eobjects/analyzer/connection/CsvDatastore.java (added)
-
src/main/java/org/eobjects/analyzer/connection/DataSourceDataContextProvider.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/connection/JdbcDatastore.java (modified) (6 diffs)
-
src/main/java/org/eobjects/analyzer/descriptors/AbstractDescriptorProvider.java (added)
-
src/main/java/org/eobjects/analyzer/descriptors/ClasspathScanDescriptorProvider.java (modified) (10 diffs)
-
src/main/java/org/eobjects/analyzer/descriptors/SimpleDescriptorProvider.java (modified) (4 diffs)
-
src/main/java/org/eobjects/analyzer/job/AnalysisJobBuilder.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/JaxbJobFactory.java (modified) (15 diffs)
-
src/main/java/org/eobjects/analyzer/job/concurrent/EjbTimerTaskRunnerBean.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/concurrent/MultiThreadedTaskRunner.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/concurrent/SingleThreadedTaskRunner.java (modified) (2 diffs)
-
src/main/java/org/eobjects/analyzer/job/concurrent/TaskRunner.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/AnalysisType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/AnalyzerDescriptorType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/AnalyzerType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/ColumnType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/ColumnsType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/ConfiguredPropertiesType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/DataContextType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/InputType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/Job.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/JobMetadataType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/ObjectFactory.java (modified) (6 diffs)
-
src/main/java/org/eobjects/analyzer/job/jaxb/OutputType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/ProvidedPropertyTypeEnum.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/SourceType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/TransformationType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/TransformerDescriptorType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/TransformerType.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/jaxb/package-info.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/job/runner/AnalysisRunnerImpl.java (modified) (2 diffs)
-
src/main/java/org/eobjects/analyzer/util/JaxbValidationEventHandler.java (added)
-
src/main/java/org/eobjects/analyzer/util/SchemaNavigator.java (modified) (1 diff)
-
src/main/java/org/eobjects/analyzer/util/StringUtils.java (added)
-
src/main/resources/configuration.xsd (added)
-
src/test/java/org/eobjects/analyzer/configuration (added)
-
src/test/java/org/eobjects/analyzer/configuration/JaxbConfigurationFactoryTest.java (added)
-
src/test/java/org/eobjects/analyzer/job/AnalysisJobBuilderTest.java (modified) (1 diff)
-
src/test/java/org/eobjects/analyzer/job/JaxbJobFactoryTest.java (modified) (1 diff)
-
src/test/java/org/eobjects/analyzer/job/TransformerJobBuilderTest.java (modified) (1 diff)
-
src/test/java/org/eobjects/analyzer/test/TestHelper.java (modified) (2 diffs)
-
src/test/java/org/eobjects/analyzer/test/full/scenarios/NameAndEmailPartEqualityTest.java (modified) (2 diffs)
-
src/test/java/org/eobjects/analyzer/test/full/scenarios/TokenizerAndValueDistributionTest.java (modified) (2 diffs)
-
src/test/java/org/eobjects/analyzer/test/full/scenarios/ValueDistributionAndStringAnalysisTest.java (modified) (2 diffs)
-
src/test/resources/example-configuration-valid.xml (added)
Legend:
- Unmodified
- Added
- Removed
-
AnalyzerBeans/trunk/generate_jaxb_model.sh
r979 r982 1 1 #!/bin/sh 2 2 xjc -d src/main/java -p org.eobjects.analyzer.job.jaxb src/main/resources/job.xsd 3 xjc -d src/main/java -p org.eobjects.analyzer.configuration.jaxb src/main/resources/configuration.xsd -
AnalyzerBeans/trunk/pom.xml
r978 r982 62 62 </configuration> 63 63 </plugin> 64 <plugin> 65 <groupId>org.apache.maven.plugins</groupId> 66 <artifactId>maven-jar-plugin</artifactId> 67 <configuration> 68 <archive> 69 <manifest> 70 <addClasspath>true</addClasspath> 71 <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 72 <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 73 <classpathPrefix>lib</classpathPrefix> 74 <mainClass>org.eobjects.analyzer.cli.Main</mainClass> 75 </manifest> 76 </archive> 77 </configuration> 78 </plugin> 79 <plugin> 80 <groupId>org.apache.maven.plugins</groupId> 81 <artifactId>maven-dependency-plugin</artifactId> 82 <executions> 83 <execution> 84 <id>copy-dependencies</id> 85 <phase>package</phase> 86 <goals> 87 <goal>copy-dependencies</goal> 88 </goals> 89 <configuration> 90 <includeScope>runtime</includeScope> 91 <outputDirectory>${project.build.directory}/lib</outputDirectory> 92 </configuration> 93 </execution> 94 </executions> 95 </plugin> 64 96 </plugins> 65 97 </build> … … 112 144 </dependency> 113 145 <dependency> 146 <groupId>args4j</groupId> 147 <artifactId>args4j</artifactId> 148 <version>2.0.12</version> 149 </dependency> 150 <dependency> 114 151 <groupId>org.slf4j</groupId> 115 152 <artifactId>slf4j-jcl</artifactId> -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/beans/EmailStandardizerTransformer.java
r966 r982 23 23 24 24 public static enum EmailPart implements HasGroupLiteral { 25 USERNAME("([a-zA-Z0-9\\._%+-]+)"), DOMAIN("([a-zA-Z0-9\\._%+-]+\\.[a-zA-Z0-9\\._%+-]{2,4})"); 25 USERNAME("([a-zA-Z0-9\\._%+-]+)"), DOMAIN( 26 "([a-zA-Z0-9\\._%+-]+\\.[a-zA-Z0-9\\._%+-]{2,4})"); 26 27 27 28 private String groupLiteral; -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/configuration/AnalyzerBeansConfiguration.java
r926 r982 1 package org.eobjects.analyzer. job;1 package org.eobjects.analyzer.configuration; 2 2 3 3 import java.io.Serializable; -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/configuration/AnalyzerBeansConfigurationImpl.java
r967 r982 1 package org.eobjects.analyzer. job;1 package org.eobjects.analyzer.configuration; 2 2 3 3 import org.eobjects.analyzer.connection.DatastoreCatalog; -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/connection/DataSourceDataContextProvider.java
r968 r982 12 12 private final DataContext dataContext; 13 13 private final SchemaNavigator schemaNavigator; 14 15 // TODO: Lazy load datacontext based on JNDI name?16 14 17 15 public DataSourceDataContextProvider(DataSource ds) { -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/connection/JdbcDatastore.java
r947 r982 5 5 import java.sql.DriverManager; 6 6 import java.sql.SQLException; 7 8 import javax.naming.InitialContext; 9 import javax.sql.DataSource; 10 11 import org.eobjects.analyzer.util.StringUtils; 7 12 8 13 import dk.eobjects.metamodel.DataContext; … … 14 19 15 20 private String _name; 16 private String _ url;21 private String _jdbcUrl; 17 22 private String _username; 18 23 private String _password; 19 24 private String _driverClass; 25 private String _datasourceJndiUrl; 20 26 private transient DataContextProvider _dataContextProvider; 21 27 private transient Connection _connection; 22 28 23 public JdbcDatastore(String name, String url, String driverClass) {29 public JdbcDatastore(String name, String jdbcUrl, String driverClass) { 24 30 _name = name; 25 _ url = url;31 _jdbcUrl = jdbcUrl; 26 32 _driverClass = driverClass; 27 33 } … … 34 40 } 35 41 36 public String getUrl() { 37 return _url; 42 public JdbcDatastore(String name, String datasourceJndiUrl) { 43 _name = name; 44 _datasourceJndiUrl = datasourceJndiUrl; 45 38 46 } 39 47 40 public void setUrl(String url) {41 _url = url;48 public String getJdbcUrl() { 49 return _jdbcUrl; 42 50 } 43 51 … … 46 54 } 47 55 48 public void setUsername(String username) {49 synchronized (this) {50 _username = username;51 }52 }53 54 56 public String getPassword() { 55 57 return _password; 56 58 } 57 59 58 public void setPassword(String password) {59 synchronized (this) {60 _password = password;61 }62 }63 64 60 public String getDriverClass() { 65 61 return _driverClass; 66 }67 68 public void setDriverClass(String driverClass) {69 _driverClass = driverClass;70 62 } 71 63 … … 75 67 } 76 68 77 public void setName(String name) {78 _name = name;69 public String getDatasourceJndiUrl() { 70 return _datasourceJndiUrl; 79 71 } 80 72 … … 84 76 synchronized (this) { 85 77 if (_dataContextProvider == null) { 86 try { 87 Class.forName(_driverClass); 88 } catch (ClassNotFoundException e) { 89 throw new IllegalStateException( 90 "Could not initialize JDBC driver", e); 78 if (StringUtils.isNullOrEmpty(_datasourceJndiUrl)) { 79 try { 80 Class.forName(_driverClass); 81 } catch (ClassNotFoundException e) { 82 throw new IllegalStateException( 83 "Could not initialize JDBC driver", e); 84 } 85 try { 86 if (_username == null && _password == null) { 87 _connection = DriverManager 88 .getConnection(_jdbcUrl); 89 } else { 90 _connection = DriverManager.getConnection( 91 _jdbcUrl, _username, _password); 92 } 93 } catch (SQLException e) { 94 throw new IllegalStateException( 95 "Could not establish JDBC connection", e); 96 } 97 98 DataContext dataContext = DataContextFactory 99 .createJdbcDataContext(_connection); 100 _dataContextProvider = new SingleDataContextProvider( 101 dataContext); 102 } else { 103 try { 104 InitialContext initialContext = new InitialContext(); 105 DataSource dataSource = (DataSource) initialContext 106 .lookup(_datasourceJndiUrl); 107 _dataContextProvider = new DataSourceDataContextProvider( 108 dataSource); 109 } catch (Exception e) { 110 throw new IllegalStateException(e); 111 } 91 112 } 92 try {93 if (_username == null && _password == null) {94 _connection = DriverManager.getConnection(_url);95 } else {96 _connection = DriverManager.getConnection(_url,97 _username, _password);98 }99 } catch (SQLException e) {100 throw new IllegalStateException(101 "Could not establish JDBC connection", e);102 }103 104 DataContext dataContext = DataContextFactory105 .createJdbcDataContext(_connection);106 _dataContextProvider = new SingleDataContextProvider(107 dataContext);108 113 } 109 114 } -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/descriptors/ClasspathScanDescriptorProvider.java
r978 r982 6 6 import java.io.FilenameFilter; 7 7 import java.io.IOException; 8 import java.io.InputStream; 9 import java.net.JarURLConnection; 8 10 import java.net.URL; 11 import java.net.URLConnection; 9 12 import java.util.Collection; 10 13 import java.util.Collections; … … 12 15 import java.util.HashMap; 13 16 import java.util.Map; 17 import java.util.jar.JarEntry; 18 import java.util.jar.JarFile; 14 19 15 20 import org.eobjects.analyzer.beans.Analyzer; … … 20 25 import org.slf4j.LoggerFactory; 21 26 22 public final class ClasspathScanDescriptorProvider implements23 DescriptorProvider {27 public final class ClasspathScanDescriptorProvider extends 28 AbstractDescriptorProvider { 24 29 25 30 private static final Logger logger = LoggerFactory 26 31 .getLogger(ClasspathScanDescriptorProvider.class); 32 27 33 private Map<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor<?>> _analyzerBeanDescriptors = new HashMap<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor<?>>(); 28 34 private Map<Class<? extends Transformer<?>>, TransformerBeanDescriptor<?>> _transformerBeanDescriptors = new HashMap<Class<? extends Transformer<?>>, TransformerBeanDescriptor<?>>(); 29 35 private Map<Class<? extends Renderer<?, ?>>, RendererBeanDescriptor> _rendererBeanDescriptors = new HashMap<Class<? extends Renderer<?, ?>>, RendererBeanDescriptor>(); 30 36 31 @Override32 public AnalyzerBeanDescriptor<?> getAnalyzerBeanDescriptorByDisplayName(33 String name) {34 Collection<AnalyzerBeanDescriptor<?>> analyzerBeanDescriptors = getAnalyzerBeanDescriptors();35 for (AnalyzerBeanDescriptor<?> analyzerBeanDescriptor : analyzerBeanDescriptors) {36 if (name.equals(analyzerBeanDescriptor.getDisplayName())) {37 return analyzerBeanDescriptor;38 }39 }40 return null;41 }42 43 @Override44 public TransformerBeanDescriptor<?> getTransformerBeanDescriptorByDisplayName(45 String name) {46 Collection<TransformerBeanDescriptor<?>> transformerBeanDescriptors = getTransformerBeanDescriptors();47 for (TransformerBeanDescriptor<?> transformerBeanDescriptor : transformerBeanDescriptors) {48 if (name.equals(transformerBeanDescriptor.getDisplayName())) {49 return transformerBeanDescriptor;50 }51 }52 return null;53 }54 55 37 public ClasspathScanDescriptorProvider scanPackage(String packageName, 56 38 boolean recursive) { 57 39 String packagePath = packageName.replace('.', '/'); 40 logger.debug("Scanning package path: {}", packagePath); 58 41 try { 59 42 Enumeration<URL> resources = ClassLoader … … 62 45 URL resource = resources.nextElement(); 63 46 File dir = new File(resource.getFile()); 64 scanDirectory(dir, recursive); 47 48 if (dir.isDirectory()) { 49 logger.debug("Resource is a file, scanning directory: {}", 50 dir.getAbsolutePath()); 51 scanDirectory(dir, recursive); 52 } else { 53 URLConnection connection = resource.openConnection(); 54 if (connection instanceof JarURLConnection) { 55 JarURLConnection jarUrlConnection = (JarURLConnection) connection; 56 logger.debug("Resource is a JAR file, scanning file: " 57 + jarUrlConnection.getJarFile().getName()); 58 scanJar(jarUrlConnection, packagePath, recursive); 59 } else { 60 throw new IllegalStateException( 61 "Unknown connection type: " + connection); 62 } 63 } 65 64 } 66 65 } catch (IOException e) { … … 69 68 70 69 return this; 70 } 71 72 private void scanJar(JarURLConnection jarUrlConnection, String packagePath, 73 boolean recursive) throws IOException { 74 JarFile jarFile = jarUrlConnection.getJarFile(); 75 Enumeration<JarEntry> entries = jarFile.entries(); 76 77 while (entries.hasMoreElements()) { 78 JarEntry entry = entries.nextElement(); 79 String entryName = entry.getName(); 80 if (entryName.startsWith(packagePath) 81 && entryName.endsWith(".class")) { 82 if (recursive) { 83 InputStream inputStream = jarFile.getInputStream(entry); 84 scanInputStream(inputStream); 85 } else { 86 String trailingPart = entryName.substring(packagePath 87 .length()); 88 if (trailingPart.startsWith("/")) { 89 trailingPart = trailingPart.substring(1); 90 } 91 if (trailingPart.indexOf('/') == -1) { 92 InputStream inputStream = jarFile.getInputStream(entry); 93 scanInputStream(inputStream); 94 } else { 95 logger.info("Omitting recursive JAR file entry: {}", 96 entryName); 97 } 98 } 99 } else { 100 logger.info("Omitting JAR file entry: {}", entryName); 101 } 102 } 71 103 } 72 104 … … 91 123 for (File file : classFiles) { 92 124 try { 93 BeanClassVisitor visitor = new BeanClassVisitor(); 94 ClassReader classReader = new ClassReader(new FileInputStream( 95 file)); 96 classReader.accept(visitor, ClassReader.SKIP_CODE); 97 98 if (visitor.isAnalyzer()) { 99 @SuppressWarnings("unchecked") 100 Class<? extends Analyzer<?>> analyzerClass = (Class<? extends Analyzer<?>>) visitor 101 .getBeanClass(); 102 AnalyzerBeanDescriptor<?> descriptor = _analyzerBeanDescriptors 103 .get(analyzerClass); 104 if (descriptor == null) { 105 descriptor = AnnotationBasedAnalyzerBeanDescriptor 106 .create(analyzerClass); 107 _analyzerBeanDescriptors.put(analyzerClass, descriptor); 108 } 109 } 110 if (visitor.isTransformer()) { 111 @SuppressWarnings("unchecked") 112 Class<? extends Transformer<?>> transformerClass = (Class<? extends Transformer<?>>) visitor 113 .getBeanClass(); 114 TransformerBeanDescriptor<?> descriptor = _transformerBeanDescriptors 115 .get(transformerClass); 116 if (descriptor == null) { 117 descriptor = AnnotationBasedTransformerBeanDescriptor 118 .create(transformerClass); 119 _transformerBeanDescriptors.put(transformerClass, 120 descriptor); 121 } 122 } 123 if (visitor.isRenderer()) { 124 @SuppressWarnings("unchecked") 125 Class<? extends Renderer<?, ?>> rendererClass = (Class<? extends Renderer<?, ?>>) visitor 126 .getBeanClass(); 127 RendererBeanDescriptor descriptor = _rendererBeanDescriptors 128 .get(rendererClass); 129 if (descriptor == null) { 130 descriptor = new AnnotationBasedRendererBeanDescriptor( 131 rendererClass); 132 _rendererBeanDescriptors.put(rendererClass, descriptor); 133 } 134 } 125 InputStream inputStream = new FileInputStream(file); 126 scanInputStream(inputStream); 135 127 } catch (IOException e) { 136 128 logger.error("Could not read file", e); … … 155 147 } 156 148 149 protected void scanInputStream(InputStream inputStream) throws IOException { 150 ClassReader classReader = new ClassReader(inputStream); 151 BeanClassVisitor visitor = new BeanClassVisitor(); 152 classReader.accept(visitor, ClassReader.SKIP_CODE); 153 154 if (visitor.isAnalyzer()) { 155 @SuppressWarnings("unchecked") 156 Class<? extends Analyzer<?>> analyzerClass = (Class<? extends Analyzer<?>>) visitor 157 .getBeanClass(); 158 AnalyzerBeanDescriptor<?> descriptor = _analyzerBeanDescriptors 159 .get(analyzerClass); 160 if (descriptor == null) { 161 descriptor = AnnotationBasedAnalyzerBeanDescriptor 162 .create(analyzerClass); 163 _analyzerBeanDescriptors.put(analyzerClass, descriptor); 164 } 165 } 166 if (visitor.isTransformer()) { 167 @SuppressWarnings("unchecked") 168 Class<? extends Transformer<?>> transformerClass = (Class<? extends Transformer<?>>) visitor 169 .getBeanClass(); 170 TransformerBeanDescriptor<?> descriptor = _transformerBeanDescriptors 171 .get(transformerClass); 172 if (descriptor == null) { 173 descriptor = AnnotationBasedTransformerBeanDescriptor 174 .create(transformerClass); 175 _transformerBeanDescriptors.put(transformerClass, descriptor); 176 } 177 } 178 if (visitor.isRenderer()) { 179 @SuppressWarnings("unchecked") 180 Class<? extends Renderer<?, ?>> rendererClass = (Class<? extends Renderer<?, ?>>) visitor 181 .getBeanClass(); 182 RendererBeanDescriptor descriptor = _rendererBeanDescriptors 183 .get(rendererClass); 184 if (descriptor == null) { 185 descriptor = new AnnotationBasedRendererBeanDescriptor( 186 rendererClass); 187 _rendererBeanDescriptors.put(rendererClass, descriptor); 188 } 189 } 190 } 191 157 192 @Override 158 193 public Collection<AnalyzerBeanDescriptor<?>> getAnalyzerBeanDescriptors() { … … 161 196 } 162 197 163 @SuppressWarnings("unchecked")164 @Override165 public <A extends Analyzer<?>> AnalyzerBeanDescriptor<A> getAnalyzerBeanDescriptorForClass(166 Class<A> analyzerBeanClass) {167 return (AnalyzerBeanDescriptor<A>) _analyzerBeanDescriptors168 .get(analyzerBeanClass);169 }170 171 198 @Override 172 199 public Collection<TransformerBeanDescriptor<?>> getTransformerBeanDescriptors() { … … 175 202 } 176 203 177 @SuppressWarnings("unchecked")178 @Override179 public <T extends Transformer<?>> TransformerBeanDescriptor<T> getTransformerBeanDescriptorForClass(180 Class<T> transformerBeanClass) {181 return (TransformerBeanDescriptor<T>) _transformerBeanDescriptors182 .get(transformerBeanClass);183 }184 185 204 @Override 186 205 public Collection<RendererBeanDescriptor> getRendererBeanDescriptors() { … … 188 207 .values()); 189 208 } 190 191 @Override192 public RendererBeanDescriptor getRendererBeanDescriptorForClass(193 Class<? extends Renderer<?, ?>> rendererBeanClass) {194 return _rendererBeanDescriptors.get(rendererBeanClass);195 }196 209 } -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/descriptors/SimpleDescriptorProvider.java
r978 r982 40 40 * @author Kasper SÞrensen 41 41 */ 42 public class SimpleDescriptorProvider implementsDescriptorProvider {42 public class SimpleDescriptorProvider extends AbstractDescriptorProvider { 43 43 44 44 private List<AnalyzerBeanDescriptor<?>> _analyzerBeanDescriptors = new ArrayList<AnalyzerBeanDescriptor<?>>(); … … 74 74 } 75 75 76 @SuppressWarnings("unchecked")77 @Override78 public <A extends Analyzer<?>> AnalyzerBeanDescriptor<A> getAnalyzerBeanDescriptorForClass(79 Class<A> analyzerBeanClass) {80 for (AnalyzerBeanDescriptor<?> descriptor : _analyzerBeanDescriptors) {81 if (descriptor.getBeanClass() == analyzerBeanClass) {82 return (AnalyzerBeanDescriptor<A>) descriptor;83 }84 }85 return null;86 }87 88 @SuppressWarnings("unchecked")89 @Override90 public <T extends Transformer<?>> TransformerBeanDescriptor<T> getTransformerBeanDescriptorForClass(91 Class<T> transformerBeanClass) {92 for (TransformerBeanDescriptor<?> descriptor : _transformerBeanDescriptors) {93 if (descriptor.getBeanClass() == transformerBeanClass) {94 return (TransformerBeanDescriptor<T>) descriptor;95 }96 }97 return null;98 }99 100 76 @Override 101 77 public List<TransformerBeanDescriptor<?>> getTransformerBeanDescriptors() { … … 116 92 List<RendererBeanDescriptor> rendererBeanDescriptors) { 117 93 _rendererBeanDescriptors = rendererBeanDescriptors; 118 }119 120 @Override121 public RendererBeanDescriptor getRendererBeanDescriptorForClass(122 Class<? extends Renderer<?, ?>> rendererBeanClass) {123 for (RendererBeanDescriptor descriptor : _rendererBeanDescriptors) {124 if (descriptor.getBeanClass() == rendererBeanClass) {125 return descriptor;126 }127 }128 return null;129 94 } 130 95 … … 170 135 } 171 136 } 172 173 @Override174 public AnalyzerBeanDescriptor<?> getAnalyzerBeanDescriptorByDisplayName(175 String name) {176 Collection<AnalyzerBeanDescriptor<?>> analyzerBeanDescriptors = getAnalyzerBeanDescriptors();177 for (AnalyzerBeanDescriptor<?> analyzerBeanDescriptor : analyzerBeanDescriptors) {178 if (name.equals(analyzerBeanDescriptor.getDisplayName())) {179 return analyzerBeanDescriptor;180 }181 }182 return null;183 }184 185 @Override186 public TransformerBeanDescriptor<?> getTransformerBeanDescriptorByDisplayName(187 String name) {188 Collection<TransformerBeanDescriptor<?>> transformerBeanDescriptors = getTransformerBeanDescriptors();189 for (TransformerBeanDescriptor<?> transformerBeanDescriptor : transformerBeanDescriptors) {190 if (name.equals(transformerBeanDescriptor.getDisplayName())) {191 return transformerBeanDescriptor;192 }193 }194 return null;195 }196 137 } -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/AnalysisJobBuilder.java
r978 r982 10 10 import org.eobjects.analyzer.beans.RowProcessingAnalyzer; 11 11 import org.eobjects.analyzer.beans.Transformer; 12 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 12 13 import org.eobjects.analyzer.connection.DataContextProvider; 13 14 import org.eobjects.analyzer.connection.Datastore; -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/JaxbJobFactory.java
r980 r982 14 14 import javax.xml.bind.JAXBException; 15 15 import javax.xml.bind.Unmarshaller; 16 import javax.xml.bind.ValidationEvent;17 import javax.xml.bind.ValidationEventHandler;18 16 19 17 import org.eobjects.analyzer.beans.ExploringAnalyzer; 20 18 import org.eobjects.analyzer.beans.RowProcessingAnalyzer; 19 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 21 20 import org.eobjects.analyzer.connection.DataContextProvider; 22 21 import org.eobjects.analyzer.connection.Datastore; … … 37 36 import org.eobjects.analyzer.job.jaxb.InputType; 38 37 import org.eobjects.analyzer.job.jaxb.Job; 38 import org.eobjects.analyzer.job.jaxb.JobMetadataType; 39 39 import org.eobjects.analyzer.job.jaxb.ObjectFactory; 40 40 import org.eobjects.analyzer.job.jaxb.OutputType; … … 43 43 import org.eobjects.analyzer.job.jaxb.TransformerDescriptorType; 44 44 import org.eobjects.analyzer.job.jaxb.TransformerType; 45 import org.eobjects.analyzer.util.JaxbValidationEventHandler; 45 46 import org.eobjects.analyzer.util.SchemaNavigator; 47 import org.eobjects.analyzer.util.StringUtils; 46 48 import org.slf4j.Logger; 47 49 import org.slf4j.LoggerFactory; … … 79 81 Unmarshaller unmarshaller = _jaxbContext.createUnmarshaller(); 80 82 81 unmarshaller.setEventHandler(new ValidationEventHandler() { 82 @Override 83 public boolean handleEvent(ValidationEvent event) { 84 int severity = event.getSeverity(); 85 if (severity == ValidationEvent.WARNING) { 86 logger.warn("encountered JAXB parsing warning: " 87 + event.getMessage()); 88 return true; 89 } 90 91 logger.warn("encountered JAXB parsing error: " 92 + event.getMessage()); 93 return false; 94 } 95 }); 83 unmarshaller.setEventHandler(new JaxbValidationEventHandler()); 96 84 Job job = (Job) unmarshaller.unmarshal(inputStream); 97 85 return create(job); … … 102 90 103 91 public AnalysisJobBuilder create(Job job) { 92 JobMetadataType metadata = job.getJobMetadata(); 93 if (metadata != null) { 94 logger.info("Job name: {}", metadata.getJobName()); 95 logger.info("Job version: {}", metadata.getJobVersion()); 96 logger.info("Job description: {}", metadata.getJobDescription()); 97 logger.info("Author: {}", metadata.getAuthor()); 98 logger.info("Created date: {}", metadata.getCreatedDate()); 99 logger.info("Updated date: {}", metadata.getUpdatedDate()); 100 } 101 104 102 SourceType source = job.getSource(); 105 103 … … 109 107 DataContextType dataContext = source.getDataContext(); 110 108 String ref = dataContext.getRef(); 111 if ( isNullOrEmpty(ref)) {109 if (StringUtils.isNullOrEmpty(ref)) { 112 110 throw new IllegalStateException("Datastore ref cannot be null"); 113 111 } … … 131 129 for (ColumnType column : columns) { 132 130 String path = column.getPath(); 133 if ( isNullOrEmpty(path)) {131 if (StringUtils.isNullOrEmpty(path)) { 134 132 throw new IllegalStateException("Column path cannot be null"); 135 133 } … … 141 139 physicalColumn); 142 140 String id = column.getId(); 143 if ( isNullOrEmpty(id)) {141 if (StringUtils.isNullOrEmpty(id)) { 144 142 throw new IllegalStateException( 145 143 "Source column id cannot be null"); … … 158 156 TransformerDescriptorType descriptor = transformer.getDescriptor(); 159 157 ref = descriptor.getRef(); 160 if ( isNullOrEmpty(ref)) {158 if (StringUtils.isNullOrEmpty(ref)) { 161 159 throw new IllegalStateException( 162 160 "Transformer descriptor ref cannot be null"); … … 189 187 for (InputType inputType : input) { 190 188 ref = inputType.getRef(); 191 if ( isNullOrEmpty(ref)) {189 if (StringUtils.isNullOrEmpty(ref)) { 192 190 throw new IllegalStateException( 193 191 "Transformer input column ref cannot be null"); … … 220 218 MutableInputColumn<?> o2 = outputColumns.get(i); 221 219 String name = o1.getName(); 222 if (! isNullOrEmpty(name)) {220 if (!StringUtils.isNullOrEmpty(name)) { 223 221 o2.setName(name); 224 222 } 225 223 String id = o1.getId(); 226 if ( isNullOrEmpty(id)) {224 if (StringUtils.isNullOrEmpty(id)) { 227 225 throw new IllegalStateException( 228 226 "Transformer output column id cannot be null"); … … 240 238 for (AnalyzerType analyzerType : analyzers) { 241 239 ref = analyzerType.getDescriptor().getRef(); 242 if ( isNullOrEmpty(ref)) {240 if (StringUtils.isNullOrEmpty(ref)) { 243 241 throw new IllegalStateException( 244 242 "Analyzer descriptor ref cannot be null"); … … 264 262 for (InputType inputType : input) { 265 263 ref = inputType.getRef(); 266 if ( isNullOrEmpty(ref)) {264 if (StringUtils.isNullOrEmpty(ref)) { 267 265 throw new IllegalStateException( 268 266 "Analyzer input column ref cannot be null"); … … 300 298 } 301 299 302 private boolean isNullOrEmpty(String str) {303 return str == null || str.trim().length() == 0;304 }305 306 300 private void applyProperties( 307 301 AbstractBeanJobBuilder<? extends BeanDescriptor<?>, ?, ?> builder, … … 313 307 String name = property.getName(); 314 308 String value = property.getValue(); 315 309 316 310 ConfiguredPropertyDescriptor configuredProperty = descriptor 317 .getConfiguredProperty(name);318 311 .getConfiguredProperty(name); 312 319 313 // TODO: Convert value according to configuredProperty's type 320 314 builder.setConfiguredProperty(configuredProperty, value); -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/concurrent/EjbTimerTaskRunnerBean.java
r949 r982 43 43 } 44 44 } 45 46 @Override 47 public void shutdown() { 48 logger.info("shutdown() called, nothing to do"); 49 } 45 50 } -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/concurrent/MultiThreadedTaskRunner.java
r949 r982 8 8 import org.slf4j.LoggerFactory; 9 9 10 public class MultiThreadedTaskRunner implements TaskRunner {10 public final class MultiThreadedTaskRunner implements TaskRunner { 11 11 12 12 private final Logger logger = LoggerFactory.getLogger(getClass()); 13 14 private ExecutorService threadPool;13 14 private ExecutorService executorService; 15 15 16 16 public MultiThreadedTaskRunner() { 17 threadPool= Executors.newCachedThreadPool();17 executorService = Executors.newCachedThreadPool(); 18 18 } 19 19 20 20 public MultiThreadedTaskRunner(int numThreads) { 21 threadPool = Executors.newFixedThreadPool(numThreads); 21 executorService = Executors.newFixedThreadPool(numThreads); 22 } 23 24 @Override 25 public void run(Task task) { 26 logger.debug("run({})", task); 27 executorService.submit(new TaskRunnable(task)); 28 } 29 30 @Override 31 public void shutdown() { 32 logger.info("shutdown() called, shutting down executor service"); 33 executorService.shutdown(); 22 34 } 23 35 24 36 @Override 25 public void run(Task task) { 26 logger.debug("run({})", task); 27 threadPool.submit(new TaskRunnable(task)); 37 protected void finalize() throws Throwable { 38 shutdown(); 28 39 } 29 40 } -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/concurrent/SingleThreadedTaskRunner.java
r968 r982 8 8 import org.slf4j.LoggerFactory; 9 9 10 public class SingleThreadedTaskRunner implements TaskRunner {10 public final class SingleThreadedTaskRunner implements TaskRunner { 11 11 12 12 private final Logger logger = LoggerFactory.getLogger(getClass()); … … 49 49 } 50 50 } 51 52 @Override 53 public void shutdown() { 54 logger.info("shutdown() called, nothing to do"); 55 } 51 56 } -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/concurrent/TaskRunner.java
r926 r982 6 6 7 7 public void run(Task task); 8 9 public void shutdown(); 8 10 } -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/AnalysisType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/AnalyzerDescriptorType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/AnalyzerType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/ColumnType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/ColumnsType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/ConfiguredPropertiesType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/DataContextType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/InputType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/Job.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/JobMetadataType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/ObjectFactory.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 … … 38 38 39 39 /** 40 * Create an instance of {@link DataContextType }40 * Create an instance of {@link ColumnType } 41 41 * 42 42 */ 43 public DataContextType createDataContextType() {44 return new DataContextType();43 public ColumnType createColumnType() { 44 return new ColumnType(); 45 45 } 46 46 … … 54 54 55 55 /** 56 * Create an instance of {@link TransformerDescriptorType } 57 * 58 */ 59 public TransformerDescriptorType createTransformerDescriptorType() { 60 return new TransformerDescriptorType(); 61 } 62 63 /** 64 * Create an instance of {@link AnalyzerType } 65 * 66 */ 67 public AnalyzerType createAnalyzerType() { 68 return new AnalyzerType(); 69 } 70 71 /** 72 * Create an instance of {@link TransformationType } 73 * 74 */ 75 public TransformationType createTransformationType() { 76 return new TransformationType(); 77 } 78 79 /** 80 * Create an instance of {@link AnalysisType } 81 * 82 */ 83 public AnalysisType createAnalysisType() { 84 return new AnalysisType(); 85 } 86 87 /** 56 88 * Create an instance of {@link AnalyzerDescriptorType } 57 89 * … … 62 94 63 95 /** 64 * Create an instance of {@link InputType }96 * Create an instance of {@link SourceType } 65 97 * 66 98 */ 67 public InputType createInputType() { 68 return new InputType(); 99 public SourceType createSourceType() { 100 return new SourceType(); 101 } 102 103 /** 104 * Create an instance of {@link DataContextType } 105 * 106 */ 107 public DataContextType createDataContextType() { 108 return new DataContextType(); 109 } 110 111 /** 112 * Create an instance of {@link ColumnsType } 113 * 114 */ 115 public ColumnsType createColumnsType() { 116 return new ColumnsType(); 117 } 118 119 /** 120 * Create an instance of {@link Job } 121 * 122 */ 123 public Job createJob() { 124 return new Job(); 125 } 126 127 /** 128 * Create an instance of {@link JobMetadataType } 129 * 130 */ 131 public JobMetadataType createJobMetadataType() { 132 return new JobMetadataType(); 69 133 } 70 134 … … 86 150 87 151 /** 88 * Create an instance of {@link SourceType }89 *90 */91 public SourceType createSourceType() {92 return new SourceType();93 }94 95 /**96 * Create an instance of {@link AnalyzerType }97 *98 */99 public AnalyzerType createAnalyzerType() {100 return new AnalyzerType();101 }102 103 /**104 * Create an instance of {@link ColumnType }105 *106 */107 public ColumnType createColumnType() {108 return new ColumnType();109 }110 111 /**112 * Create an instance of {@link TransformerDescriptorType }113 *114 */115 public TransformerDescriptorType createTransformerDescriptorType() {116 return new TransformerDescriptorType();117 }118 119 /**120 152 * Create an instance of {@link ConfiguredPropertiesType } 121 153 * … … 126 158 127 159 /** 128 * Create an instance of {@link TransformationType }160 * Create an instance of {@link InputType } 129 161 * 130 162 */ 131 public TransformationType createTransformationType() { 132 return new TransformationType(); 133 } 134 135 /** 136 * Create an instance of {@link JobMetadataType } 137 * 138 */ 139 public JobMetadataType createJobMetadataType() { 140 return new JobMetadataType(); 141 } 142 143 /** 144 * Create an instance of {@link Job } 145 * 146 */ 147 public Job createJob() { 148 return new Job(); 149 } 150 151 /** 152 * Create an instance of {@link AnalysisType } 153 * 154 */ 155 public AnalysisType createAnalysisType() { 156 return new AnalysisType(); 157 } 158 159 /** 160 * Create an instance of {@link ColumnsType } 161 * 162 */ 163 public ColumnsType createColumnsType() { 164 return new ColumnsType(); 163 public InputType createInputType() { 164 return new InputType(); 165 165 } 166 166 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/OutputType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/ProvidedPropertyTypeEnum.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/SourceType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/TransformationType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/TransformerDescriptorType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/TransformerType.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/jaxb/package-info.java
r978 r982 3 3 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 4 4 // Any modifications to this file will be lost upon recompilation of the source schema. 5 // Generated on: 2010.08.28 at 12:24:34PM CEST5 // Generated on: 2010.08.28 at 05:39:23 PM CEST 6 6 // 7 7 -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/job/runner/AnalysisRunnerImpl.java
r975 r982 11 11 import java.util.concurrent.LinkedBlockingQueue; 12 12 13 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 13 14 import org.eobjects.analyzer.connection.DataContextProvider; 14 15 import org.eobjects.analyzer.data.InputColumn; … … 16 17 import org.eobjects.analyzer.descriptors.AnalyzerBeanDescriptor; 17 18 import org.eobjects.analyzer.job.AnalysisJob; 18 import org.eobjects.analyzer.job.AnalyzerBeansConfiguration;19 19 import org.eobjects.analyzer.job.AnalyzerJob; 20 20 import org.eobjects.analyzer.job.BeanJob; -
AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/util/SchemaNavigator.java
r978 r982 47 47 48 48 public Column convertToColumn(String columnName) { 49 return dataContext.getColumnByQualifiedLabel(columnName); 49 Schema schema = null; 50 String[] schemaNames = dataContext.getSchemaNames(); 51 for (String schemaName : schemaNames) { 52 if (columnName.startsWith(schemaName)) { 53 schema = dataContext.getSchemaByName(schemaName); 54 String remainingPath1 = columnName.substring(schemaName.length()); 55 56 assert remainingPath1.charAt(0) == '.'; 57 58 remainingPath1 = remainingPath1.substring(1); 59 60 Table table = null; 61 String[] tableNames = schema.getTableNames(); 62 for (String tableName : tableNames) { 63 if (remainingPath1.startsWith(tableName)) { 64 table = schema.getTableByName(tableName); 65 String remainingPath2 = remainingPath1.substring(tableName.length()); 66 67 assert remainingPath2.charAt(0) == '.'; 68 69 remainingPath2 = remainingPath2.substring(1); 70 71 Column column = table.getColumnByName(remainingPath2); 72 if (column != null) { 73 return column; 74 } 75 } 76 } 77 } 78 } 79 80 return null; 50 81 } 51 82 } -
AnalyzerBeans/trunk/src/test/java/org/eobjects/analyzer/job/AnalysisJobBuilderTest.java
r978 r982 7 7 import org.eobjects.analyzer.beans.StringAnalyzer; 8 8 import org.eobjects.analyzer.beans.ConvertToStringTransformer; 9 import org.eobjects.analyzer.configuration.AnalyzerBeansConfigurationImpl; 9 10 import org.eobjects.analyzer.connection.Datastore; 10 11 import org.eobjects.analyzer.connection.DatastoreCatalog; -
AnalyzerBeans/trunk/src/test/java/org/eobjects/analyzer/job/JaxbJobFactoryTest.java
r980 r982 5 5 import java.util.List; 6 6 7 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 7 8 import org.eobjects.analyzer.data.MetaModelInputColumn; 8 9 import org.eobjects.analyzer.job.runner.AnalysisRunnerImpl; -
AnalyzerBeans/trunk/src/test/java/org/eobjects/analyzer/job/TransformerJobBuilderTest.java
r976 r982 5 5 import org.eobjects.analyzer.beans.ConvertToNumberTransformer; 6 6 import org.eobjects.analyzer.beans.TokenizerTransformer; 7 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 7 8 import org.eobjects.analyzer.data.DataTypeFamily; 8 9 import org.eobjects.analyzer.data.InputColumn; -
AnalyzerBeans/trunk/src/test/java/org/eobjects/analyzer/test/TestHelper.java
r978 r982 6 6 import java.util.List; 7 7 8 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 9 import org.eobjects.analyzer.configuration.AnalyzerBeansConfigurationImpl; 8 10 import org.eobjects.analyzer.connection.Datastore; 9 11 import org.eobjects.analyzer.connection.DatastoreCatalog; … … 12 14 import org.eobjects.analyzer.descriptors.ClasspathScanDescriptorProvider; 13 15 import org.eobjects.analyzer.descriptors.DescriptorProvider; 14 import org.eobjects.analyzer.job.AnalyzerBeansConfiguration;15 import org.eobjects.analyzer.job.AnalyzerBeansConfigurationImpl;16 16 import org.eobjects.analyzer.job.concurrent.TaskRunner; 17 17 import org.eobjects.analyzer.job.concurrent.SingleThreadedTaskRunner; -
AnalyzerBeans/trunk/src/test/java/org/eobjects/analyzer/test/full/scenarios/NameAndEmailPartEqualityTest.java
r978 r982 15 15 import org.eobjects.analyzer.beans.valuedist.ValueDistributionAnalyzer; 16 16 import org.eobjects.analyzer.beans.valuedist.ValueDistributionResult; 17 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 18 import org.eobjects.analyzer.configuration.AnalyzerBeansConfigurationImpl; 17 19 import org.eobjects.analyzer.connection.DatastoreCatalog; 18 20 import org.eobjects.analyzer.connection.SingleDataContextProvider; … … 22 24 import org.eobjects.analyzer.descriptors.DescriptorProvider; 23 25 import org.eobjects.analyzer.job.AnalysisJobBuilder; 24 import org.eobjects.analyzer.job.AnalyzerBeansConfiguration;25 import org.eobjects.analyzer.job.AnalyzerBeansConfigurationImpl;26 26 import org.eobjects.analyzer.job.RowProcessingAnalyzerJobBuilder; 27 27 import org.eobjects.analyzer.job.TransformerJobBuilder; -
AnalyzerBeans/trunk/src/test/java/org/eobjects/analyzer/test/full/scenarios/TokenizerAndValueDistributionTest.java
r978 r982 6 6 import org.eobjects.analyzer.beans.valuedist.ValueDistributionAnalyzer; 7 7 import org.eobjects.analyzer.beans.valuedist.ValueDistributionResult; 8 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 9 import org.eobjects.analyzer.configuration.AnalyzerBeansConfigurationImpl; 8 10 import org.eobjects.analyzer.connection.DatastoreCatalog; 9 11 import org.eobjects.analyzer.connection.SingleDataContextProvider; … … 14 16 import org.eobjects.analyzer.job.AnalysisJob; 15 17 import org.eobjects.analyzer.job.AnalysisJobBuilder; 16 import org.eobjects.analyzer.job.AnalyzerBeansConfiguration;17 import org.eobjects.analyzer.job.AnalyzerBeansConfigurationImpl;18 18 import org.eobjects.analyzer.job.RowProcessingAnalyzerJobBuilder; 19 19 import org.eobjects.analyzer.job.TransformerJobBuilder; -
AnalyzerBeans/trunk/src/test/java/org/eobjects/analyzer/test/full/scenarios/ValueDistributionAndStringAnalysisTest.java
r978 r982 7 7 import org.eobjects.analyzer.beans.valuedist.ValueDistributionAnalyzer; 8 8 import org.eobjects.analyzer.beans.valuedist.ValueDistributionResult; 9 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 10 import org.eobjects.analyzer.configuration.AnalyzerBeansConfigurationImpl; 9 11 import org.eobjects.analyzer.connection.DatastoreCatalog; 10 12 import org.eobjects.analyzer.connection.SingleDataContextProvider; … … 15 17 import org.eobjects.analyzer.job.AnalysisJob; 16 18 import org.eobjects.analyzer.job.AnalysisJobBuilder; 17 import org.eobjects.analyzer.job.AnalyzerBeansConfiguration;18 import org.eobjects.analyzer.job.AnalyzerBeansConfigurationImpl;19 19 import org.eobjects.analyzer.job.RowProcessingAnalyzerJobBuilder; 20 20 import org.eobjects.analyzer.job.concurrent.MultiThreadedTaskRunner;
Note: See TracChangeset
for help on using the changeset viewer.
