List of usage examples for org.apache.commons.lang StringUtils substringAfterLast
public static String substringAfterLast(String str, String separator)
Gets the substring after the last occurrence of a separator.
From source file:org.apache.kylin.storage.jdbc.ITJDBCResourceStoreTest.java
@Test public void testPerformanceWithResourceTool() throws Exception { Assume.assumeTrue(jdbcConnectable);// ww w .j a v a 2s. c om KylinConfig tmpConfig = KylinConfig.createKylinConfig(KylinConfig.getInstanceFromEnv()); tmpConfig.setMetadataUrl(copyIdentifier + jdbcMetadataUrlNoIdentifier); JDBCResourceStore store = (JDBCResourceStore) ResourceStore.getStore(kylinConfig); NavigableSet<String> executes = store.listResources(ResourceStore.EXECUTE_RESOURCE_ROOT); NavigableSet<String> executeOutputs = store.listResources(ResourceStore.EXECUTE_OUTPUT_RESOURCE_ROOT); long startTs = System.currentTimeMillis(); for (String execute : executes) { String uuid = StringUtils.substringAfterLast(execute, "/"); RawResource executeResource = store.getResource(execute); Map<String, RawResource> executeOutputResourceMap = new HashMap<>(); for (String executeOutput : executeOutputs) { if (executeOutput.contains(uuid)) { RawResource executeOutputResource = store.getResource(executeOutput); executeOutputResourceMap.put(executeOutput, executeOutputResource); } } for (int i = 0; i < 200; i++) { String newUuid = UUID.randomUUID().toString(); store.putResource(ResourceStore.EXECUTE_RESOURCE_ROOT + "/" + newUuid, executeResource.inputStream, System.currentTimeMillis()); for (String key : executeOutputResourceMap.keySet()) { String step = StringUtils.substringAfterLast(key, uuid); store.putResource(ResourceStore.EXECUTE_OUTPUT_RESOURCE_ROOT + "/" + newUuid + step, executeOutputResourceMap.get(key).inputStream, System.currentTimeMillis()); } } } long queryNumBeforeCopy = store.getQueriedSqlNum(); ResourceTool.copy(kylinConfig, tmpConfig); long endTs = System.currentTimeMillis(); long queryNumAfterCopy = store.getQueriedSqlNum(); JDBCResourceStore resourceStoreCopy = (JDBCResourceStore) ResourceStore.getStore(tmpConfig); int executeNum = store.listResources("/execute").size(); int executeOutputNum = store.listResources("/execute_output").size(); assertEquals(executeNum, resourceStoreCopy.listResources("/execute").size()); assertEquals(executeOutputNum, resourceStoreCopy.listResources("/execute_output").size()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ROOT); String startTime = sdf.format(new Date(Long.parseLong(String.valueOf(startTs)))); String endTime = sdf.format(new Date(Long.parseLong(String.valueOf(endTs)))); logger.info("Test performance with ResourceTool done during " + startTime + " to " + endTime); logger.info("Now there is " + executeNum + " execute data and " + executeOutputNum + " execute_output data in resource store."); logger.info("Resource store run " + queryNumBeforeCopy + " sqls for metadata generation, and " + (queryNumAfterCopy - queryNumBeforeCopy) + " sqls for copy with ResourceTool."); assertTrue((queryNumAfterCopy - queryNumBeforeCopy) < queryNumBeforeCopy); logger.info("This test is expected to be done in 10 mins."); assertTrue((endTs - startTs) < 600000); }
From source file:org.apache.nifi.processors.hadoop.KeyValueReader.java
@Override public Set<FlowFile> readSequenceFile(Path file, Configuration configuration, FileSystem fileSystem) throws IOException { final SequenceFile.Reader reader; Set<FlowFile> flowFiles = new HashSet<>(); reader = new SequenceFile.Reader(configuration, Reader.file(fileSystem.makeQualified(file))); final Text key = new Text(); final KeyValueWriterCallback callback = new KeyValueWriterCallback(reader); final String inputfileName = file.getName() + "." + System.nanoTime() + "."; int counter = 0; LOG.debug("Read from SequenceFile: {} ", new Object[] { file }); try {/*from w ww . j a va2 s . c o m*/ while (reader.next(key)) { String fileName = key.toString(); // the key may be a file name, and may not if (LOOKS_LIKE_FILENAME.matcher(fileName).matches()) { if (fileName.contains(File.separator)) { fileName = StringUtils.substringAfterLast(fileName, File.separator); } fileName = fileName + "." + System.nanoTime(); } else { fileName = inputfileName + ++counter; } FlowFile flowFile = session.create(); flowFile = session.putAttribute(flowFile, CoreAttributes.FILENAME.key(), fileName); callback.key = key; try { flowFile = session.write(flowFile, callback); flowFiles.add(flowFile); } catch (ProcessException e) { LOG.error("Could not write to flowfile {}", new Object[] { flowFile }, e); session.remove(flowFile); } key.clear(); } } finally { IOUtils.closeQuietly(reader); } return flowFiles; }
From source file:org.apache.nifi.processors.hadoop.ValueReader.java
@Override public Set<FlowFile> readSequenceFile(final Path file, Configuration configuration, FileSystem fileSystem) throws IOException { Set<FlowFile> flowFiles = new HashSet<>(); final SequenceFile.Reader reader = new SequenceFile.Reader(configuration, Reader.file(fileSystem.makeQualified(file))); final String inputfileName = file.getName() + "." + System.nanoTime() + "."; int counter = 0; LOG.debug("Reading from sequence file {}", new Object[] { file }); final OutputStreamWritableCallback writer = new OutputStreamWritableCallback(reader); Text key = new Text(); try {/*from w w w.ja va2 s. c om*/ while (reader.next(key)) { String fileName = key.toString(); // the key may be a file name, and may not if (LOOKS_LIKE_FILENAME.matcher(fileName).matches()) { if (fileName.contains(File.separator)) { fileName = StringUtils.substringAfterLast(fileName, File.separator); } fileName = fileName + "." + System.nanoTime(); } else { fileName = inputfileName + ++counter; } FlowFile flowFile = session.create(); flowFile = session.putAttribute(flowFile, CoreAttributes.FILENAME.key(), fileName); try { flowFile = session.write(flowFile, writer); flowFiles.add(flowFile); } catch (ProcessException e) { LOG.error("Could not write to flowfile {}", new Object[] { flowFile }, e); session.remove(flowFile); } key.clear(); } } finally { IOUtils.closeQuietly(reader); } return flowFiles; }
From source file:org.apache.sling.hc.core.impl.servlet.HealthCheckExecutorServlet.java
@Override protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { String tagsStr = StringUtils.defaultIfEmpty(StringUtils.substringBeforeLast(request.getPathInfo(), "."), "") .replace("/", ""); if (StringUtils.isBlank(tagsStr)) { // if not provided via path use parameter or default tagsStr = StringUtils.defaultIfEmpty(request.getParameter(PARAM_TAGS.name), ""); }/* w ww . jav a 2s . c om*/ final String[] tags = tagsStr.split("[, ;]+"); String format = StringUtils.substringAfterLast(request.getPathInfo(), "."); if (StringUtils.isBlank(format)) { // if not provided via extension use parameter or default format = StringUtils.defaultIfEmpty(request.getParameter(PARAM_FORMAT.name), FORMAT_HTML); } final Boolean includeDebug = Boolean.valueOf(request.getParameter(PARAM_INCLUDE_DEBUG.name)); final Map<Result.Status, Integer> statusMapping = request.getParameter(PARAM_HTTP_STATUS.name) != null ? getStatusMapping(request.getParameter(PARAM_HTTP_STATUS.name)) : null; HealthCheckExecutionOptions options = new HealthCheckExecutionOptions(); options.setCombineTagsWithOr(Boolean .valueOf(StringUtils.defaultString(request.getParameter(PARAM_COMBINE_TAGS_WITH_OR.name), "true"))); options.setForceInstantExecution(Boolean.valueOf(request.getParameter(PARAM_FORCE_INSTANT_EXECUTION.name))); String overrideGlobalTimeoutVal = request.getParameter(PARAM_OVERRIDE_GLOBAL_TIMEOUT.name); if (StringUtils.isNumeric(overrideGlobalTimeoutVal)) { options.setOverrideGlobalTimeout(Integer.valueOf(overrideGlobalTimeoutVal)); } List<HealthCheckExecutionResult> executionResults = this.healthCheckExecutor.execute(options, tags); Result.Status mostSevereStatus = Result.Status.DEBUG; for (HealthCheckExecutionResult executionResult : executionResults) { Status status = executionResult.getHealthCheckResult().getStatus(); if (status.ordinal() > mostSevereStatus.ordinal()) { mostSevereStatus = status; } } Result overallResult = new Result(mostSevereStatus, "Overall status " + mostSevereStatus); sendNoCacheHeaders(response); if (statusMapping != null) { Integer httpStatus = statusMapping.get(overallResult.getStatus()); response.setStatus(httpStatus); } if (FORMAT_HTML.equals(format)) { sendHtmlResponse(overallResult, executionResults, request, response, includeDebug); } else if (FORMAT_JSON.equals(format)) { sendJsonResponse(overallResult, executionResults, null, response, includeDebug); } else if (FORMAT_JSONP.equals(format)) { String jsonpCallback = StringUtils.defaultIfEmpty(request.getParameter(PARAM_JSONP_CALLBACK.name), JSONP_CALLBACK_DEFAULT); sendJsonResponse(overallResult, executionResults, jsonpCallback, response, includeDebug); } else if (FORMAT_TXT.equals(format)) { sendTxtResponse(overallResult, response); } else { response.setContentType("text/plain"); response.getWriter().println("Invalid format " + format + " - supported formats: html|json|jsonp|txt"); } }
From source file:org.apache.sling.scripting.sightly.impl.engine.extension.use.ScriptUseProvider.java
private String scriptExtension(String path) { String extension = StringUtils.substringAfterLast(path, "."); if (StringUtils.isEmpty(extension)) { extension = null;/*from www .ja v a 2 s.c om*/ } return extension; }
From source file:org.apache.sling.scripting.sightly.js.impl.Utils.java
public static boolean isJsScript(String identifier) { String extension = StringUtils.substringAfterLast(identifier, "."); return JS_EXTENSION.equalsIgnoreCase(extension); }
From source file:org.apache.sling.slingoakrestrictions.impl.ResourceTypePatternTest.java
@Before public void setup() { initMocks(this); setupTreeMock(testTreeParentOutsideScope, StringUtils.substringBeforeLast(TEST_PATH, "/"), null, RESOURCE_TYPE_OUTSIDE_SCOPE); setupTreeMock(testTree, StringUtils.substringAfterLast(TEST_PATH, "/"), testTreeParentOutsideScope, RESOURCE_TYPE_TEST_PATH);/*from w w w. j a v a2s . c o m*/ setupTreeMock(testTreeSub1, TEST_NODE_SUB1, testTree, RESOURCE_TYPE_SUB1); setupTreeMock(testTreeSub2, TEST_NODE_SUB2, testTree, RESOURCE_TYPE_SUB2); setupTreeMock(testTreeSub3, TEST_NODE_SUB3, testTree, RESOURCE_TYPE_SUB3); setupTreeMock(testTreeSub3Sub1, TEST_NODE_SUBSUB1, testTreeSub3, RESOURCE_TYPE_SUBSUB1); setupTreeMock(testTreeSub3Sub2, TEST_NODE_SUBSUB2, testTreeSub3, RESOURCE_TYPE_SUBSUB1); }
From source file:org.apache.sling.slingoakrestrictions.impl.ResourceTypePatternTest.java
private void setupTreeMock(Tree tree, String path, Tree parentTree, String resourceType) { doReturn(parentTree == null).when(tree).isRoot(); doReturn(parentTree).when(tree).getParent(); mockGetStringProperty(tree, ResourceTypePattern.SLING_RESOURCE_TYPE, resourceType); String effectivePath = path;//from w ww .ja v a 2s. com if (parentTree != null) { effectivePath = parentTree.getPath() + "/" + path; String childNodeName = StringUtils.substringAfterLast(effectivePath, "/"); doReturn(tree).when(parentTree).getChild(childNodeName); } doReturn(effectivePath).when(tree).getPath(); // default for getChild doThrow(new IllegalArgumentException()).when(tree).getChild(Mockito.anyString()); }
From source file:org.apache.torque.generator.configuration.ReadConfigurationTest.java
@Test public void testReadConfiguration() throws Exception { ProjectPaths projectPaths = new Maven2DirectoryProjectPaths(new File("src/test/configuration")); UnitDescriptor unitDescriptor = new UnitDescriptor(UnitDescriptor.Packaging.DIRECTORY, projectPaths, new DefaultTorqueGeneratorPaths()); UnitConfigurationReader configurationReader = new UnitConfigurationReader(); ConfigurationHandlers configurationHandlers = new ConfigurationHandlers(); UnitConfiguration unitConfiguration = configurationReader.read(unitDescriptor, configurationHandlers); {/*from w w w. ja va2 s . c om*/ File defaultTargetDirectory = unitConfiguration.getOutputDirectory(null); File expected = new File("src/test/configuration/target/generated-sources"); assertEquals(expected, defaultTargetDirectory); } { File modifiableTargetDirectory = unitConfiguration.getOutputDirectory("modifiable"); File expected = new File("src/test/configuration/src/main/generated-java"); assertEquals(expected, modifiableTargetDirectory); } try { unitConfiguration.getOutputDirectory("notExistingKey"); fail("Exception expected"); } catch (IllegalStateException e) { // expected } assertEquals(Loglevel.DEBUG, unitConfiguration.getLoglevel()); { Options expectedOptions = new Options(); Set<Option> expectedOptionSet = new HashSet<Option>(); expectedOptionSet .add(new OptionImpl(new QualifiedName("org.apache.torque.generator.optionWithNamespace"), "optionWithNamespaceValue")); expectedOptionSet.add(new OptionImpl(new QualifiedName("org.apache.optionWithNamespace"), "org.apache.optionWithNamespaceValue")); expectedOptionSet.add( new OptionImpl(new QualifiedName("optionWithoutNamespace", ""), "optionWithoutNamespaceValue")); expectedOptionSet.add(new OptionImpl(new QualifiedName("optionPrecedenceLastFile"), "value from xml")); expectedOptionSet.add(new OptionImpl(new QualifiedName("jdbcUrl"), "jdbc.url.option.value")); expectedOptionSet.add(new OptionImpl(new QualifiedName("jdbcDriver"), "jdbc.driver.option.value")); expectedOptions.addGlobalOptions(expectedOptionSet); assertOptionsEquals(expectedOptions, unitConfiguration.getOptions()); } { EntityReferences entityReferences = unitConfiguration.getEntityReferences(); Map<String, byte[]> actual = entityReferences.getEntityReferences(); assertEquals(2, actual.size()); assertArrayEquals( FileUtils.readFileToByteArray( new File("src/test/configuration/src/main/torque-gen/resources/override.xsd")), actual.get("http://db.apache.org/torque/some.xsd")); assertArrayEquals( FileUtils.readFileToByteArray( new File("src/test/configuration/src/main/torque-gen/resources/new.xsd")), actual.get("http://db.apache.org/torque/new.xsd")); } { List<Output> outputFiles = unitConfiguration.getOutputList(); assertEquals(3, outputFiles.size()); { Output output = outputFiles.get(0); assertEquals(new QualifiedName("org.apache.torque.generator.firstOutput"), output.getName()); assertEquals("skip", output.getExistingTargetStrategy()); assertEquals(null, output.getOutputDirKey()); assertNull(output.getFilename()); { OutletReference outletConfiguration = output.getContentOutlet(); assertEquals(new QualifiedName("org.apache.torque.generator.test.readConfiguration.javaOutlet"), outletConfiguration.getName()); } { JavaOutlet filenameOutlet = (JavaOutlet) output.getFilenameOutlet(); assertEquals("Foo", filenameOutlet.getFoo()); assertEquals("Bar", filenameOutlet.getBar()); assertEquals(new QualifiedName("org.apache.torque.generator.configuration.filenameOutlet"), filenameOutlet.getName()); } { Fileset sourceFileset = new Fileset(projectPaths.getDefaultSourcePath(), new HashSet<String>(), new HashSet<String>()); FileSourceProvider sourceProvider = new FileSourceProvider(new XmlSourceFormat(), sourceFileset, null); sourceProvider.init(configurationHandlers, controllerState); output.getSourceProvider().init(configurationHandlers, controllerState); assertFileSourceProviderEquals(sourceProvider, (FileSourceProvider) output.getSourceProvider()); } assertSourceProcessConfigurationEquals(new SourceProcessConfiguration(), output.getSourceProcessConfiguration()); } { Output output = outputFiles.get(1); assertEquals(new QualifiedName("secondOutput"), output.getName()); assertEquals("replace", output.getExistingTargetStrategy()); assertEquals("secondOutputDirKey", output.getOutputDirKey()); assertNull(output.getFilename()); { OutletReference outletConfiguration = output.getContentOutlet(); assertEquals( new QualifiedName("org.apache.torque.generator.test.readConfiguration.anotherOutlet"), outletConfiguration.getName()); } { VelocityOutlet filenameOutlet = (VelocityOutlet) output.getFilenameOutlet(); String templateContent = filenameOutlet.getContent(controllerState); // remove License from template by comparing only // the last line String templateContentLicenseRemoved = StringUtils.substringAfterLast(templateContent, "\r\n"); assertEquals("test template output", templateContentLicenseRemoved); assertEquals(new QualifiedName("org.apache.torque.generator.configuration.filenameOutlet"), filenameOutlet.getName()); assertTrue(filenameOutlet.isOptionsInContext()); assertTrue(filenameOutlet.isSourceAttributesInContext()); assertTrue(filenameOutlet.isVariablesInContext()); } { Fileset sourceFileset = new Fileset(projectPaths.getDefaultSourcePath(), createSetFrom("second.source.path.properties"), createSetFrom("second.excluded.properties")); FileSourceProvider sourceProvider = new FileSourceProvider(new PropertiesSourceFormat(), sourceFileset, true); sourceProvider.init(configurationHandlers, controllerState); output.getSourceProvider().init(configurationHandlers, controllerState); assertFileSourceProviderEquals(sourceProvider, (FileSourceProvider) output.getSourceProvider()); } { SourceProcessConfiguration sourceProcessConfiguration = new SourceProcessConfiguration(); sourceProcessConfiguration.setStartElementsPath("properties/entry"); List<SourceTransformerDefinition> transformerDefinitions = new ArrayList<SourceTransformerDefinition>(); transformerDefinitions .add(new SourceTransformerDefinition(new ConfigurationTestTransformer(), null)); transformerDefinitions.add( new SourceTransformerDefinition(new OtherConfigurationTestTransformer(), "database")); sourceProcessConfiguration.setSourceTransformerDefinitions(transformerDefinitions); sourceProcessConfiguration.setSkipDecider( "org.apache.torque.generator.configuration.ConfigurationTestSkipDecider"); assertSourceProcessConfigurationEquals(sourceProcessConfiguration, output.getSourceProcessConfiguration()); } } { Output output = outputFiles.get(2); assertEquals(new QualifiedName("thirdOutput"), output.getName()); assertEquals("append", output.getExistingTargetStrategy()); assertEquals("thirdOutputDirKey", output.getOutputDirKey()); assertEquals("outputFileName", output.getFilename()); assertNull(output.getFilenameOutlet()); { OutletReference outletConfiguration = output.getContentOutlet(); assertEquals( new QualifiedName("org.apache.torque.generator.test.readConfiguration.thirdOutlet"), outletConfiguration.getName()); } { JdbcMetadataSourceProvider sourceProvider = new JdbcMetadataSourceProvider("jdbcUrl", "jdbcDriver", "jdbcUsername", "jdbcPassword", "jdbcSchema"); sourceProvider.init(configurationHandlers, controllerState); output.getSourceProvider().init(configurationHandlers, controllerState); assertJdbcMetadataSourceProviderEquals(sourceProvider, (JdbcMetadataSourceProvider) output.getSourceProvider()); } assertSourceProcessConfigurationEquals(new SourceProcessConfiguration(), output.getSourceProcessConfiguration()); } } { OutletConfiguration outletConfiguration = unitConfiguration.getOutletConfiguration(); Map<QualifiedName, Outlet> outletMap = outletConfiguration.getOutlets(); assertEquals(2, outletMap.size()); { JavaOutlet outlet = (JavaOutlet) outletMap .get(new QualifiedName("org.apache.torque.generator.test.readConfiguration.javaOutlet")); assertEquals("Foo2", outlet.getFoo()); assertEquals("Bar2", outlet.getBar()); Map<String, MergepointMapping> mergepointMappings = outlet.getMergepointMappings(); assertEquals(3, mergepointMappings.size()); { MergepointMapping mergepointMapping = mergepointMappings.get("properties"); assertEquals(1, mergepointMapping.getActions().size()); MergepointAction action = mergepointMapping.getActions().get(0); assertEquals(new TraverseAllAction("entry", "org.apache.torque.generator.velocity.propertyCopy", true), action); assertEquals("inputElement", outlet.getInputElementName()); } { // mergepoint from the separate mapping MergepointMapping mergepointMapping = mergepointMappings.get("mergepointName"); assertEquals(1, mergepointMapping.getActions().size()); MergepointAction action = mergepointMapping.getActions().get(0); assertEquals(new ApplyAction(null, "someOutletAction", false), action); assertEquals("inputElement", outlet.getInputElementName()); } { // other mergepoint from the separate mapping MergepointMapping mergepointMapping = mergepointMappings.get("mergepointFromParent"); assertEquals(1, mergepointMapping.getActions().size()); MergepointAction action = mergepointMapping.getActions().get(0); assertEquals(new ApplyAction(null, "newOutletAction", true), action); assertEquals("inputElement", outlet.getInputElementName()); } } { VelocityOutlet outlet = (VelocityOutlet) outletMap .get(new QualifiedName("org.apache.torque.generator.test.readConfiguration.anotherOutlet")); String templateContent = outlet.getContent(controllerState); // remove License from template by comparing only // the last line String templateContentLicenseRemoved = StringUtils.substringAfterLast(templateContent, "\r\n"); assertEquals("test template output", templateContentLicenseRemoved); assertEquals(0, outlet.getMergepointMappings().size()); assertNull(outlet.getInputElementName()); assertFalse(outlet.isOptionsInContext()); assertFalse(outlet.isSourceAttributesInContext()); assertFalse(outlet.isVariablesInContext()); } } }
From source file:org.apache.torque.generator.configuration.ReadConfigurationTest.java
@Test public void testInheritance() throws Exception { CustomProjectPaths projectPaths;//from w ww .j a va 2 s . c om UnitConfiguration unitConfiguration; ConfigurationHandlers configurationHandlers = new ConfigurationHandlers(); { CustomProjectPaths parentProjectPaths = new CustomProjectPaths( new Maven2DirectoryProjectPaths(new File("src/test/configuration"))); parentProjectPaths.setConfigurationDir(new File("src/test/configuration/src/main/torque-gen-parent")); parentProjectPaths.setOutputDirectory(null, new File("src/test/configuration/target/parentCustom")); parentProjectPaths.setOutputDirectory("modifiable", new File("src/test/configuration/src/main/parentCustom")); UnitDescriptor parentUnitDescriptor = new UnitDescriptor(UnitDescriptor.Packaging.DIRECTORY, parentProjectPaths, new DefaultTorqueGeneratorPaths()); projectPaths = new CustomProjectPaths( new Maven2DirectoryProjectPaths(new File("src/test/configuration"))); projectPaths.setOutputDirectory(null, new File("src/test/configuration/target/custom")); projectPaths.setOutputDirectory("modifiable", new File("src/test/configuration/src/main/custom")); UnitDescriptor unitDescriptor = new UnitDescriptor(UnitDescriptor.Packaging.DIRECTORY, projectPaths, new DefaultTorqueGeneratorPaths()); unitDescriptor.setInheritsFrom(parentUnitDescriptor); UnitConfigurationReader configurationReader = new UnitConfigurationReader(); unitConfiguration = configurationReader.read(unitDescriptor, configurationHandlers); } assertEquals(Loglevel.DEBUG, unitConfiguration.getLoglevel()); { File newFileTargetDirectory = unitConfiguration.getOutputDirectory(null); File expected = new File("src/test/configuration/target/custom"); assertEquals(expected, newFileTargetDirectory); } { File modifiableFileTargetDirectory = unitConfiguration.getOutputDirectory("modifiable"); File expected = new File("src/test/configuration/src/main/custom"); assertEquals(expected, modifiableFileTargetDirectory); } { Options expectedOptions = new Options(); Set<Option> expectedOptionSet = new HashSet<Option>(); expectedOptionSet .add(new OptionImpl(new QualifiedName("org.apache.torque.generator.optionWithNamespace"), "optionWithNamespaceValue")); expectedOptionSet.add(new OptionImpl(new QualifiedName("org.apache.optionWithNamespace"), "org.apache.optionWithNamespaceValue")); expectedOptionSet.add( new OptionImpl(new QualifiedName("optionWithoutNamespace", ""), "optionWithoutNamespaceValue")); expectedOptionSet.add(new OptionImpl(new QualifiedName("optionPrecedenceLastFile"), "value from xml")); expectedOptionSet.add(new OptionImpl(new QualifiedName("jdbcUrl"), "jdbc.url.option.value")); expectedOptionSet.add(new OptionImpl(new QualifiedName("jdbcDriver"), "jdbc.driver.option.value")); expectedOptionSet.add(new OptionImpl(new QualifiedName("parentOptionWithoutNamespace", ""), "parentOptionWithoutNamespaceParentValue")); expectedOptionSet .add(new OptionImpl(new QualifiedName("org.apache.torque.generator.parentOptionWithNamespace"), "parentOptionWithNamespaceParentValue")); expectedOptions.addGlobalOptions(expectedOptionSet); assertOptionsEquals(expectedOptions, unitConfiguration.getOptions()); } { EntityReferences entityReferences = unitConfiguration.getEntityReferences(); Map<String, byte[]> actual = entityReferences.getEntityReferences(); assertEquals(3, actual.size()); assertArrayEquals( FileUtils.readFileToByteArray( new File("src/test/configuration/src/main/torque-gen-parent/resources/parent.xsd")), actual.get("http://db.apache.org/torque/parent.xsd")); assertArrayEquals( FileUtils.readFileToByteArray( new File("src/test/configuration/src/main/torque-gen/resources/override.xsd")), actual.get("http://db.apache.org/torque/some.xsd")); assertArrayEquals( FileUtils.readFileToByteArray( new File("src/test/configuration/src/main/torque-gen/resources/new.xsd")), actual.get("http://db.apache.org/torque/new.xsd")); } { List<Output> outputList = unitConfiguration.getOutputList(); assertEquals(4, outputList.size()); { Output output = outputList.get(0); assertEquals(new QualifiedName("parentOutput"), output.getName()); assertEquals("replace", output.getExistingTargetStrategy()); assertEquals("parentOutputDirKeyFromParent", output.getOutputDirKey()); assertNull(output.getFilename()); { OutletReference outletConfiguration = output.getContentOutlet(); assertEquals( new QualifiedName( "org.apache.torque.generator.test.readConfiguration.testParentOutlet"), outletConfiguration.getName()); } { JavaOutlet filenameOutlet = (JavaOutlet) output.getFilenameOutlet(); assertEquals("ParentFoo", filenameOutlet.getFoo()); assertEquals("ParentBar", filenameOutlet.getBar()); assertEquals(new QualifiedName("org.apache.torque.generator.configuration.filenameOutlet"), filenameOutlet.getName()); } { Fileset sourceFileset = new Fileset(projectPaths.getDefaultSourcePath(), createSetFrom("parentSource"), new HashSet<String>()); FileSourceProvider sourceProvider = new FileSourceProvider(new XmlSourceFormat(), sourceFileset, false); output.getSourceProvider().init(configurationHandlers, controllerState); sourceProvider.init(configurationHandlers, controllerState); assertFileSourceProviderEquals(sourceProvider, (FileSourceProvider) output.getSourceProvider()); } { SourceProcessConfiguration sourceProcessConfiguration = new SourceProcessConfiguration(); sourceProcessConfiguration.setStartElementsPath("parentSourceElement"); List<SourceTransformerDefinition> transformerDefinitions = new ArrayList<SourceTransformerDefinition>(); transformerDefinitions.add(new SourceTransformerDefinition( new OtherConfigurationTestTransformer(), "parent/database")); sourceProcessConfiguration.setSourceTransformerDefinitions(transformerDefinitions); sourceProcessConfiguration.setSkipDecider( "org.apache.torque.generator.configuration.OtherConfigurationTestSkipDecider"); assertSourceProcessConfigurationEquals(sourceProcessConfiguration, output.getSourceProcessConfiguration()); } } { Output output = outputList.get(1); assertEquals(new QualifiedName("org.apache.torque.generator.firstOutput"), output.getName()); assertEquals("skip", output.getExistingTargetStrategy()); assertEquals(null, output.getOutputDirKey()); assertNull(output.getFilename()); { OutletReference outletConfiguration = output.getContentOutlet(); assertEquals(new QualifiedName("org.apache.torque.generator.test.readConfiguration.javaOutlet"), outletConfiguration.getName()); } { JavaOutlet filenameOutlet = (JavaOutlet) output.getFilenameOutlet(); assertEquals("Foo", filenameOutlet.getFoo()); assertEquals("Bar", filenameOutlet.getBar()); assertEquals(new QualifiedName("org.apache.torque.generator.configuration.filenameOutlet"), filenameOutlet.getName()); } { Fileset sourceFileset = new Fileset(projectPaths.getDefaultSourcePath(), new HashSet<String>(), new HashSet<String>()); FileSourceProvider sourceProvider = new FileSourceProvider(new XmlSourceFormat(), sourceFileset, null); sourceProvider.init(configurationHandlers, controllerState); output.getSourceProvider().init(configurationHandlers, controllerState); assertFileSourceProviderEquals(sourceProvider, (FileSourceProvider) output.getSourceProvider()); } assertSourceProcessConfigurationEquals(new SourceProcessConfiguration(), output.getSourceProcessConfiguration()); } { Output output = outputList.get(2); assertEquals(new QualifiedName("secondOutput"), output.getName()); assertEquals("replace", output.getExistingTargetStrategy()); assertEquals(output.getOutputDirKey(), "secondOutputDirKey"); assertNull(output.getFilename()); { OutletReference outletConfiguration = output.getContentOutlet(); assertEquals( new QualifiedName("org.apache.torque.generator.test.readConfiguration.anotherOutlet"), outletConfiguration.getName()); } { VelocityOutlet filenameOutlet = (VelocityOutlet) output.getFilenameOutlet(); String templateContent = filenameOutlet.getContent(controllerState); // remove License from template by comparing only // the last line String templateContentLicenseRemoved = StringUtils.substringAfterLast(templateContent, "\r\n"); assertEquals("test template output", templateContentLicenseRemoved); assertEquals(new QualifiedName("org.apache.torque.generator.configuration.filenameOutlet"), filenameOutlet.getName()); } { Fileset sourceFileset = new Fileset(projectPaths.getDefaultSourcePath(), createSetFrom("second.source.path.properties"), createSetFrom("second.excluded.properties")); FileSourceProvider sourceProvider = new FileSourceProvider(new PropertiesSourceFormat(), sourceFileset, true); sourceProvider.init(configurationHandlers, controllerState); output.getSourceProvider().init(configurationHandlers, controllerState); assertFileSourceProviderEquals(sourceProvider, (FileSourceProvider) output.getSourceProvider()); } { SourceProcessConfiguration sourceProcessConfiguration = new SourceProcessConfiguration(); sourceProcessConfiguration.setStartElementsPath("properties/entry"); List<SourceTransformerDefinition> transformerDefinitions = new ArrayList<SourceTransformerDefinition>(); transformerDefinitions .add(new SourceTransformerDefinition(new ConfigurationTestTransformer(), null)); transformerDefinitions.add( new SourceTransformerDefinition(new OtherConfigurationTestTransformer(), "database")); sourceProcessConfiguration.setSourceTransformerDefinitions(transformerDefinitions); sourceProcessConfiguration.setSkipDecider( "org.apache.torque.generator.configuration.ConfigurationTestSkipDecider"); assertSourceProcessConfigurationEquals(sourceProcessConfiguration, output.getSourceProcessConfiguration()); } } { Output output = outputList.get(3); assertEquals(new QualifiedName("thirdOutput"), output.getName()); assertEquals("append", output.getExistingTargetStrategy()); assertEquals("thirdOutputDirKey", output.getOutputDirKey()); assertEquals("outputFileName", output.getFilename()); assertNull(output.getFilenameOutlet()); { OutletReference outletConfiguration = output.getContentOutlet(); assertEquals( new QualifiedName("org.apache.torque.generator.test.readConfiguration.thirdOutlet"), outletConfiguration.getName()); } { JdbcMetadataSourceProvider sourceProvider = new JdbcMetadataSourceProvider("jdbcUrl", "jdbcDriver", "jdbcUsername", "jdbcPassword", "jdbcSchema"); sourceProvider.init(configurationHandlers, controllerState); output.getSourceProvider().init(configurationHandlers, controllerState); assertJdbcMetadataSourceProviderEquals(sourceProvider, (JdbcMetadataSourceProvider) output.getSourceProvider()); } assertSourceProcessConfigurationEquals(new SourceProcessConfiguration(), output.getSourceProcessConfiguration()); } } { OutletConfiguration outletConfiguration = unitConfiguration.getOutletConfiguration(); Map<QualifiedName, Outlet> outletMap = outletConfiguration.getOutlets(); assertEquals(3, outletMap.size()); { JavaOutlet outlet = (JavaOutlet) outletMap .get(new QualifiedName("org.apache.torque.generator.test.readConfiguration.javaOutlet")); assertEquals("Foo2", outlet.getFoo()); assertEquals("Bar2", outlet.getBar()); Map<String, MergepointMapping> mergepointMappings = outlet.getMergepointMappings(); assertEquals(3, mergepointMappings.size()); { MergepointMapping mergepointMapping = mergepointMappings.get("properties"); assertEquals(1, mergepointMapping.getActions().size()); MergepointAction action = mergepointMapping.getActions().get(0); assertEquals(new TraverseAllAction("entry", "org.apache.torque.generator.velocity.propertyCopy", true), action); assertEquals("inputElement", outlet.getInputElementName()); } { // mergepoint from the separate mapping in child MergepointMapping mergepointMapping = mergepointMappings.get("mergepointName"); assertEquals(1, mergepointMapping.getActions().size()); MergepointAction action = mergepointMapping.getActions().get(0); assertEquals(new ApplyAction(null, "someOutletAction", false), action); assertEquals("inputElement", outlet.getInputElementName()); } { // other mergepoint from the separate mapping in child MergepointMapping mergepointMapping = mergepointMappings.get("mergepointFromParent"); assertEquals(1, mergepointMapping.getActions().size()); MergepointAction action = mergepointMapping.getActions().get(0); assertEquals(new ApplyAction(null, "newOutletAction", true), action); assertEquals("inputElement", outlet.getInputElementName()); } } { VelocityOutlet outlet = (VelocityOutlet) outletMap .get(new QualifiedName("org.apache.torque.generator.test.readConfiguration.anotherOutlet")); String templateContent = outlet.getContent(controllerState); // remove License from template by comparing only // the last line String templateContentLicenseRemoved = StringUtils.substringAfterLast(templateContent, "\r\n"); assertEquals("test template output", templateContentLicenseRemoved); assertEquals(0, outlet.getMergepointMappings().size()); } { VelocityOutlet outlet = (VelocityOutlet) outletMap .get(new QualifiedName("org.apache.torque.generator.test.readConfiguration.parentOutlet")); String templateContent = outlet.getContent(controllerState); // remove License from template by comparing only // the last line String templateContentLicenseRemoved = StringUtils.substringAfterLast(templateContent, "\r\n"); assertEquals("parent test template output", templateContentLicenseRemoved); assertEquals(0, outlet.getMergepointMappings().size()); } } }