Repository: metron Updated Branches: refs/heads/feature/METRON-1136-extensions-parsers f6458a380 -> 09a62c54f
METRON-1136 Refactor for ParserExtensionConfig and Rest get all call (ottobackwards) closes apache/metron#731 Project: http://git-wip-us.apache.org/repos/asf/metron/repo Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/09a62c54 Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/09a62c54 Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/09a62c54 Branch: refs/heads/feature/METRON-1136-extensions-parsers Commit: 09a62c54f7fdd4a42cefbba27ab8de6ef24ea0ed Parents: f6458a3 Author: ottobackwards <[email protected]> Authored: Wed Sep 6 12:52:11 2017 -0400 Committer: otto <[email protected]> Committed: Wed Sep 6 12:52:11 2017 -0400 ---------------------------------------------------------------------- .../controller/ParserExtensionController.java | 7 +- .../metron/rest/service/ExtensionService.java | 3 +- .../rest/service/impl/ExtensionServiceImpl.java | 30 +-- ...arserExtensionControllerIntegrationTest.java | 20 +- .../extensions/ParserExtensionConfig.java | 196 ++++++++++++------- .../extensions/parsers/metron-test-parsers.json | 7 +- .../management/ConfigurationFunctionsTest.java | 7 +- 7 files changed, 172 insertions(+), 98 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metron/blob/09a62c54/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/controller/ParserExtensionController.java ---------------------------------------------------------------------- diff --git a/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/controller/ParserExtensionController.java b/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/controller/ParserExtensionController.java index 46ea6ad..d912295 100644 --- a/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/controller/ParserExtensionController.java +++ b/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/controller/ParserExtensionController.java @@ -22,6 +22,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; +import java.util.List; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; import org.apache.metron.common.configuration.extensions.ParserExtensionConfig; @@ -51,7 +52,7 @@ public class ParserExtensionController { DeferredResult<ResponseEntity<Void>> install(@ApiParam(name = "extensionTgz", value = "Metron Parser Extension tar.gz", required = true) @RequestParam("extensionTgz") MultipartFile extensionTgz) throws RestException { DeferredResult<ResponseEntity<Void>> result = new DeferredResult<>(); - String extensionName = extensionService.formatPackageName(extensionTgz.getOriginalFilename()); + String extensionName = extensionService.formatExtensionIdentifier(extensionTgz.getOriginalFilename()); try { if (extensionService.findOneParserExtension(extensionName) != null) { result.setResult(new ResponseEntity<Void>(HttpStatus.FORBIDDEN)); @@ -90,8 +91,8 @@ public class ParserExtensionController { @ApiOperation(value = "Retrieves all ParserExtensionConfigs from Zookeeper") @ApiResponse(message = "Returns all ParserExtensionConfigs", code = 200) @RequestMapping(method = RequestMethod.GET) - ResponseEntity<Map<String, ParserExtensionConfig>> findAll() throws RestException { - return new ResponseEntity<Map<String, ParserExtensionConfig>>(extensionService.getAllParserExtensions(), HttpStatus.OK); + ResponseEntity<List<ParserExtensionConfig>> findAll() throws RestException { + return new ResponseEntity<List<ParserExtensionConfig>>(extensionService.getAllParserExtensions(), HttpStatus.OK); } @ApiOperation(value = "Deletes or uninstalls a Parser Extension and all parsers from system") http://git-wip-us.apache.org/repos/asf/metron/blob/09a62c54/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/ExtensionService.java ---------------------------------------------------------------------- diff --git a/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/ExtensionService.java b/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/ExtensionService.java index ce28d0c..e4b3ec5 100644 --- a/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/ExtensionService.java +++ b/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/ExtensionService.java @@ -51,8 +51,9 @@ public interface ExtensionService { } void install(ExtensionType extensionType, String extensionPackageName, TarArchiveInputStream tgzStream) throws Exception; ParserExtensionConfig findOneParserExtension(String name) throws RestException; - Map<String, ParserExtensionConfig> getAllParserExtensions() throws RestException; + List<ParserExtensionConfig> getAllParserExtensions() throws RestException; List<String> getAllParserExtensionTypes() throws RestException; boolean deleteParserExtension(String name) throws Exception; String formatPackageName(String name); + String formatExtensionIdentifier(String name); } http://git-wip-us.apache.org/repos/asf/metron/blob/09a62c54/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/ExtensionServiceImpl.java ---------------------------------------------------------------------- diff --git a/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/ExtensionServiceImpl.java b/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/ExtensionServiceImpl.java index 798a7d3..3cbed70 100644 --- a/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/ExtensionServiceImpl.java +++ b/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/ExtensionServiceImpl.java @@ -100,12 +100,10 @@ public class ExtensionServiceImpl implements ExtensionService{ } @Override - public Map<String, ParserExtensionConfig> getAllParserExtensions() throws RestException{ - Map<String, ParserExtensionConfig> parserExtensionConfigs = new HashMap<>(); - List<String> sensorNames = getAllParserExtensionTypes(); - for (String name : sensorNames) { - parserExtensionConfigs.put(name, findOneParserExtension(name)); - } + public List<ParserExtensionConfig> getAllParserExtensions() throws RestException{ + List<ParserExtensionConfig> parserExtensionConfigs = new ArrayList<>(); + for( String name : getAllParserExtensionTypes()) + parserExtensionConfigs.add(findOneParserExtension(name)); return parserExtensionConfigs; } @@ -151,9 +149,10 @@ public class ExtensionServiceImpl implements ExtensionService{ return true; } - private void installParserExtension(Path extensionPath, String extentionPackageName) throws Exception{ + private void installParserExtension(Path extensionPath, String extentionFileName) throws Exception{ final InstallContext context = new InstallContext(); - context.extensionPackageName = Optional.of(formatPackageName(extentionPackageName)); + context.extensionIdentifier = Optional.of(formatExtensionIdentifier(extentionFileName)); + context.extensionPackageName = Optional.of(formatPackageName(extentionFileName)); context.bundleProperties = loadBundleProperties(); // verify the structure @@ -528,20 +527,26 @@ public class ExtensionServiceImpl implements ExtensionService{ private void writeExtensionConfiguration(InstallContext context) throws Exception { ParserExtensionConfig config = new ParserExtensionConfig(); config.setParserExtensionParserName(context.extensionParserNames); - config.setExtensionsBundleID(context.bundleID.get()); - config.setExtensionsBundleVersion(context.bundleVersion.get()); + config.setExtensionIdentifier(context.extensionIdentifier.get()); + config.setExtensionBundleID(context.bundleID.get()); + config.setExtensionBundleVersion(context.bundleVersion.get()); config.setExtensionBundleName(context.bundleName.get()); config.setExtensionAssemblyName(context.extensionPackageName.get()); config.setDefaultParserConfigs(context.defaultParserConfigs.get()); - config.setDefaultEnrichementConfigs(context.defaultEnrichmentConfigs.get()); + config.setDefaultEnrichmentConfigs(context.defaultEnrichmentConfigs.get()); config.setDefaultIndexingConfigs(context.defaultIndexingConfigs.get()); if(context.defaultElasticSearchTemplates.isPresent()) { config.setDefaultElasticSearchTemplates(context.defaultElasticSearchTemplates.get()); } - ConfigurationsUtils.writeParserExtensionConfigToZookeeper(context.extensionPackageName.get(),config.toJSON().getBytes(), client); + ConfigurationsUtils.writeParserExtensionConfigToZookeeper(context.extensionIdentifier.get(),config.toJSON().getBytes(), client); } @Override public String formatPackageName(String name){ + return name.substring(0,name.lastIndexOf(".tar.gz")).replace('.','_'); + } + + @Override + public String formatExtensionIdentifier(String name){ return name.substring(0,name.lastIndexOf("-archive.tar.gz")).replace('.','_'); } @@ -554,6 +559,7 @@ public class ExtensionServiceImpl implements ExtensionService{ public Optional<String> bundleName = Optional.empty(); public Optional<BundleProperties> bundleProperties = Optional.empty(); public Optional<String> extensionPackageName = Optional.empty(); + public Optional<String> extensionIdentifier = Optional.empty(); public Optional<Map<String,SensorParserConfig>> defaultParserConfigs = Optional.empty(); public Optional<Map<String,SensorEnrichmentConfig>> defaultEnrichmentConfigs = Optional.empty(); public Optional<Map<String,Map<String,Object>>> defaultIndexingConfigs = Optional.empty(); http://git-wip-us.apache.org/repos/asf/metron/blob/09a62c54/metron-interface/metron-rest/src/test/java/org/apache/metron/rest/controller/ParserExtensionControllerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/metron-interface/metron-rest/src/test/java/org/apache/metron/rest/controller/ParserExtensionControllerIntegrationTest.java b/metron-interface/metron-rest/src/test/java/org/apache/metron/rest/controller/ParserExtensionControllerIntegrationTest.java index 49721ca..1363104 100644 --- a/metron-interface/metron-rest/src/test/java/org/apache/metron/rest/controller/ParserExtensionControllerIntegrationTest.java +++ b/metron-interface/metron-rest/src/test/java/org/apache/metron/rest/controller/ParserExtensionControllerIntegrationTest.java @@ -35,6 +35,7 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.ResultHandler; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; @@ -135,21 +136,24 @@ public class ParserExtensionControllerIntegrationTest { this.mockMvc.perform(get(parserExtUrl + "/metron-parser-test-assembly-0_4_0").with(httpBasic(user, password))) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.parseMediaType("application/json;charset=UTF-8"))) - .andExpect(jsonPath("$.extensionAssemblyName").value("metron-parser-test-assembly-0_4_0")) + .andExpect(jsonPath("$.extensionAssemblyName").value("metron-parser-test-assembly-0_4_0-archive")) + .andExpect(jsonPath("$.extensionIdentifier").value("metron-parser-test-assembly-0_4_0")) .andExpect(jsonPath("$.extensionBundleName").value("metron-parser-test-bundle-0.4.0.bundle")) - .andExpect(jsonPath("$.extensionsBundleID").value("metron-parser-test-bundle")) - .andExpect(jsonPath("$.extensionsBundleVersion").value("0.4.0")) + .andExpect(jsonPath("$.extensionBundleID").value("metron-parser-test-bundle")) + .andExpect(jsonPath("$.extensionBundleVersion").value("0.4.0")) .andExpect(jsonPath("$.parserExtensionParserNames[0]").value("test")); // GET ALL this.mockMvc.perform(get(parserExtUrl).with(httpBasic(user,password))) .andExpect(status().isOk()) + .andDo((r) -> System.out.println(r.getResponse().getContentAsString())) .andExpect(content().contentType(MediaType.parseMediaType("application/json;charset=UTF-8"))) - .andExpect(jsonPath("$[?(@.metron-parser-test-assembly-0_4_0.extensionAssemblyName == 'metron-parser-test-assembly-0_4_0' && " + - "@.metron-parser-test-assembly-0_4_0.extensionBundleName == 'metron-parser-test-bundle-0.4.0.bundle' && " + - "@.metron-parser-test-assembly-0_4_0.extensionsBundleID == 'metron-parser-test-bundle' && " + - "@.metron-parser-test-assembly-0_4_0.extensionsBundleVersion == '0.4.0' && " + - "@.metron-parser-test-assembly-0_4_0.parserExtensionParserNames[0] == 'test')]").exists()); + .andExpect(jsonPath("$[?(@.extensionAssemblyName == 'metron-parser-test-assembly-0_4_0-archive' && " + + "@.extensionIdentifier == 'metron-parser-test-assembly-0_4_0' && " + + "@.extensionBundleName == 'metron-parser-test-bundle-0.4.0.bundle' && " + + "@.extensionBundleID == 'metron-parser-test-bundle' && " + + "@.extensionBundleVersion == '0.4.0' && " + + "@.parserExtensionParserNames[0] == 'test')]").exists()); // DELETE ASYNC result = this.mockMvc.perform(delete(parserExtUrl + "/metron-parser-test-assembly-0_4_0").with(httpBasic(user, password))).andReturn(); http://git-wip-us.apache.org/repos/asf/metron/blob/09a62c54/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/extensions/ParserExtensionConfig.java ---------------------------------------------------------------------- diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/extensions/ParserExtensionConfig.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/extensions/ParserExtensionConfig.java index 9e8fb19..2e656ec 100644 --- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/extensions/ParserExtensionConfig.java +++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/extensions/ParserExtensionConfig.java @@ -1,19 +1,16 @@ /** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with the License. You may obtain + * a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. */ package org.apache.metron.common.configuration.extensions; @@ -28,16 +25,35 @@ import java.io.IOException; import java.io.Serializable; import java.util.*; -public class ParserExtensionConfig implements Serializable{ +/** + * Configuration class for Parser Extensions. + * + * The ParserExtensionConfig contains information about the extension itself, + * along with default configurations for each of the parser types exposed by the + * extension. + * + * + */ +public class ParserExtensionConfig implements Serializable { + + private String extensionIdentifier; private String extensionAssemblyName; private String extensionBundleName; - private String extensionsBundleID; - private String extensionsBundleVersion; + private String extensionBundleID; + private String extensionBundleVersion; private Set<String> parserExtensionParserNames; - private Map<String,SensorParserConfig> defaultParserConfigs; - private Map<String,SensorEnrichmentConfig> defaultEnrichementConfigs; - private Map<String,Map<String,Object>> defaultIndexingConfigs; - private Map<String,Map<String,Object>> defaultElasticSearchTemplates; + private Map<String, SensorParserConfig> defaultParserConfigs; + private Map<String, SensorEnrichmentConfig> defaultEnrichmentConfigs; + private Map<String, Map<String, Object>> defaultIndexingConfigs; + private Map<String, Map<String, Object>> defaultElasticSearchTemplates; + + public String getExtensionIdentifier() { + return extensionIdentifier; + } + + public void setExtensionIdentifier(String extensionIdentifier) { + this.extensionIdentifier = extensionIdentifier; + } public String getExtensionAssemblyName() { return extensionAssemblyName; @@ -55,24 +71,24 @@ public class ParserExtensionConfig implements Serializable{ this.extensionBundleName = extensionBundleName; } - public String getExtensionsBundleID() { - return extensionsBundleID; + public String getExtensionBundleID() { + return extensionBundleID; } - public void setExtensionsBundleID(String extensionsBundleID) { - this.extensionsBundleID = extensionsBundleID; + public void setExtensionBundleID(String extensionBundleID) { + this.extensionBundleID = extensionBundleID; } - public String getExtensionsBundleVersion() { - return extensionsBundleVersion; + public String getExtensionBundleVersion() { + return extensionBundleVersion; } - public void setExtensionsBundleVersion(String extensionsBundleVersion) { - this.extensionsBundleVersion = extensionsBundleVersion; + public void setExtensionBundleVersion(String extensionBundleVersion) { + this.extensionBundleVersion = extensionBundleVersion; } - public Set<String> getParserExtensionParserNames() { - if(this.parserExtensionParserNames != null) { + public Set<String> getParserExtensionParserNames() { + if (this.parserExtensionParserNames != null) { return ImmutableSet.copyOf(this.parserExtensionParserNames); } return ImmutableSet.of(); @@ -82,36 +98,37 @@ public class ParserExtensionConfig implements Serializable{ this.parserExtensionParserNames = new HashSet(parserExtensionParserNames); } - public Map<String,SensorParserConfig> getDefaultParserConfigs() { - if(this.defaultParserConfigs != null){ + public Map<String, SensorParserConfig> getDefaultParserConfigs() { + if (this.defaultParserConfigs != null) { return ImmutableMap.copyOf(this.defaultParserConfigs); } return ImmutableMap.of(); } - public void setDefaultParserConfigs(Map<String,SensorParserConfig> defaultParserConfigs) { + public void setDefaultParserConfigs(Map<String, SensorParserConfig> defaultParserConfigs) { this.defaultParserConfigs = new HashMap<>(defaultParserConfigs); } - public Map<String,SensorEnrichmentConfig> getDefaultEnrichementConfigs() { - if(this.defaultEnrichementConfigs != null){ - return ImmutableMap.copyOf(this.defaultEnrichementConfigs); + public Map<String, SensorEnrichmentConfig> getDefaultEnrichmentConfigs() { + if (this.defaultEnrichmentConfigs != null) { + return ImmutableMap.copyOf(this.defaultEnrichmentConfigs); } return ImmutableMap.of(); } - public void setDefaultEnrichementConfigs(Map<String,SensorEnrichmentConfig> defaultEnrichementConfigs) { - this.defaultEnrichementConfigs = new HashMap<>(defaultEnrichementConfigs); + public void setDefaultEnrichmentConfigs( + Map<String, SensorEnrichmentConfig> defaultEnrichmentConfigs) { + this.defaultEnrichmentConfigs = new HashMap<>(defaultEnrichmentConfigs); } - public Map<String,Map<String, Object>> getDefaultIndexingConfigs() { - if(this.defaultIndexingConfigs != null){ + public Map<String, Map<String, Object>> getDefaultIndexingConfigs() { + if (this.defaultIndexingConfigs != null) { return ImmutableMap.copyOf(this.defaultIndexingConfigs); } return ImmutableMap.of(); } - public void setDefaultIndexingConfigs(Map<String,Map<String, Object>> defaultIndexingConfigs) { + public void setDefaultIndexingConfigs(Map<String, Map<String, Object>> defaultIndexingConfigs) { this.defaultIndexingConfigs = new HashMap<>(defaultIndexingConfigs); } @@ -121,18 +138,20 @@ public class ParserExtensionConfig implements Serializable{ } public Map<String, Map<String, Object>> getDefaultElasticSearchTemplates() { - if(this.defaultElasticSearchTemplates != null){ + if (this.defaultElasticSearchTemplates != null) { return ImmutableMap.copyOf(this.defaultElasticSearchTemplates); } return ImmutableMap.of(); } - public void setDefaultElasticSearchTemplates(Map<String, Map<String, Object>> defaultElasticSearchTemplates) { + public void setDefaultElasticSearchTemplates( + Map<String, Map<String, Object>> defaultElasticSearchTemplates) { this.defaultElasticSearchTemplates = new HashMap<>(defaultElasticSearchTemplates); } public static ParserExtensionConfig fromBytes(byte[] config) throws IOException { - ParserExtensionConfig ret = JSONUtils.INSTANCE.load(new String(config), ParserExtensionConfig.class); + ParserExtensionConfig ret = JSONUtils.INSTANCE + .load(new String(config), ParserExtensionConfig.class); return ret; } @@ -143,50 +162,91 @@ public class ParserExtensionConfig implements Serializable{ @Override public String toString() { return "SensorParserConfig{" + - "extensionAssemblyName='" + extensionAssemblyName + '\'' + - ", extensionBundleName='" + extensionBundleName + '\'' + - ", extensionsBundleID='" + extensionsBundleID + '\'' + - ", parserExtensionParserNames='" + String.join(",",this.parserExtensionParserNames) + '\'' + - '}'; + "extensionIdentifier='" + extensionIdentifier + '\'' + + "extensionAssemblyName='" + extensionAssemblyName + '\'' + + ", extensionBundleName='" + extensionBundleName + '\'' + + ", extensionBundleID='" + extensionBundleID + '\'' + + ", parserExtensionParserNames='" + String.join(",", this.parserExtensionParserNames) + '\'' + + + '}'; } @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } ParserExtensionConfig that = (ParserExtensionConfig) o; - if (getExtensionAssemblyName() != null ? !getExtensionAssemblyName().equals(that.getExtensionAssemblyName()) : that.getExtensionAssemblyName() != null) + if (getExtensionIdentifier() != null ? !getExtensionIdentifier() + .equals(that.getExtensionIdentifier()) : that.getExtensionIdentifier() != null) { return false; - if (getExtensionBundleName() != null ? !getExtensionBundleName().equals(that.getExtensionBundleName()) : that.getExtensionBundleName() != null) + } + if (getExtensionAssemblyName() != null ? !getExtensionAssemblyName() + .equals(that.getExtensionAssemblyName()) : that.getExtensionAssemblyName() != null) { return false; - if (getExtensionsBundleID() != null ? !getExtensionsBundleID().equals(that.getExtensionsBundleID()) : that.getExtensionsBundleID() != null) + } + if (getExtensionBundleName() != null ? !getExtensionBundleName() + .equals(that.getExtensionBundleName()) : that.getExtensionBundleName() != null) { return false; - if (getExtensionsBundleVersion() != null ? !getExtensionsBundleVersion().equals(that.getExtensionsBundleVersion()) : that.getExtensionsBundleVersion() != null) + } + if (getExtensionBundleID() != null ? !getExtensionBundleID().equals(that.getExtensionBundleID()) + : that.getExtensionBundleID() != null) { return false; - if (getDefaultParserConfigs() != null ? !getDefaultParserConfigs().equals(that.getDefaultParserConfigs()) : that.getDefaultParserConfigs() != null) + } + if (getExtensionBundleVersion() != null ? !getExtensionBundleVersion() + .equals(that.getExtensionBundleVersion()) : that.getExtensionBundleVersion() != null) { return false; - if (getDefaultEnrichementConfigs() != null ? !getDefaultEnrichementConfigs().equals(that.getDefaultEnrichementConfigs()) : that.getDefaultEnrichementConfigs() != null) + } + if (getDefaultParserConfigs() != null ? !getDefaultParserConfigs() + .equals(that.getDefaultParserConfigs()) : that.getDefaultParserConfigs() != null) { return false; - if (getDefaultIndexingConfigs() != null ? !getDefaultIndexingConfigs().equals(that.getDefaultIndexingConfigs()) : that.getDefaultIndexingConfigs() != null) + } + if (getDefaultEnrichmentConfigs() != null ? !getDefaultEnrichmentConfigs() + .equals(that.getDefaultEnrichmentConfigs()) : that.getDefaultEnrichmentConfigs() != null) { return false; - if (getDefaultElasticSearchTemplates() != null ? !getDefaultElasticSearchTemplates().equals(that.getDefaultElasticSearchTemplates()) : that.getDefaultElasticSearchTemplates() != null) + } + if (getDefaultIndexingConfigs() != null ? !getDefaultIndexingConfigs() + .equals(that.getDefaultIndexingConfigs()) : that.getDefaultIndexingConfigs() != null) { return false; - return getParserExtensionParserNames() != null ? getParserExtensionParserNames().equals(that.getParserExtensionParserNames()) : that.getParserExtensionParserNames() == null; + } + if (getDefaultElasticSearchTemplates() != null ? !getDefaultElasticSearchTemplates() + .equals(that.getDefaultElasticSearchTemplates()) + : that.getDefaultElasticSearchTemplates() != null) { + return false; + } + return getParserExtensionParserNames() != null ? getParserExtensionParserNames() + .equals(that.getParserExtensionParserNames()) + : that.getParserExtensionParserNames() == null; } @Override public int hashCode() { int result = getExtensionAssemblyName() != null ? getExtensionAssemblyName().hashCode() : 0; - result = 31 * result + (getExtensionBundleName() != null ? getExtensionBundleName().hashCode() : 0); - result = 31 * result + (getExtensionsBundleID() != null ? getExtensionsBundleID().hashCode() : 0); - result = 31 * result + (getExtensionsBundleVersion() != null ? getExtensionsBundleVersion().hashCode() : 0); - result = 31 * result + (getDefaultParserConfigs() != null ? getDefaultParserConfigs().hashCode() : 0); - result = 31 * result + (getDefaultEnrichementConfigs() != null ? getDefaultEnrichementConfigs().hashCode() : 0); - result = 31 * result + (getDefaultIndexingConfigs() != null ? getDefaultIndexingConfigs().hashCode() : 0); - result = 31 * result + (getDefaultElasticSearchTemplates() != null ? getDefaultElasticSearchTemplates().hashCode() : 0); - result = 31 * result + (getParserExtensionParserNames() != null ? getParserExtensionParserNames().hashCode() : 0); + result = + 31 * result + (getExtensionIdentifier() != null ? getExtensionIdentifier().hashCode() : 0); + result = + 31 * result + (getExtensionBundleName() != null ? getExtensionBundleName().hashCode() : 0); + result = 31 * result + (getExtensionBundleID() != null ? getExtensionBundleID().hashCode() : 0); + result = + 31 * result + (getExtensionBundleVersion() != null ? getExtensionBundleVersion().hashCode() + : 0); + result = 31 * result + (getDefaultParserConfigs() != null ? getDefaultParserConfigs().hashCode() + : 0); + result = 31 * result + (getDefaultEnrichmentConfigs() != null ? getDefaultEnrichmentConfigs() + .hashCode() : 0); + result = + 31 * result + (getDefaultIndexingConfigs() != null ? getDefaultIndexingConfigs().hashCode() + : 0); + result = 31 * result + (getDefaultElasticSearchTemplates() != null + ? getDefaultElasticSearchTemplates().hashCode() : 0); + result = + 31 * result + (getParserExtensionParserNames() != null ? getParserExtensionParserNames() + .hashCode() : 0); return result; } } http://git-wip-us.apache.org/repos/asf/metron/blob/09a62c54/metron-platform/metron-integration-test/src/main/config/zookeeper/extensions/parsers/metron-test-parsers.json ---------------------------------------------------------------------- diff --git a/metron-platform/metron-integration-test/src/main/config/zookeeper/extensions/parsers/metron-test-parsers.json b/metron-platform/metron-integration-test/src/main/config/zookeeper/extensions/parsers/metron-test-parsers.json index adc0609..4f029fd 100644 --- a/metron-platform/metron-integration-test/src/main/config/zookeeper/extensions/parsers/metron-test-parsers.json +++ b/metron-platform/metron-integration-test/src/main/config/zookeeper/extensions/parsers/metron-test-parsers.json @@ -1,7 +1,8 @@ { - "extensionAssemblyName" : "test.fool-1.0.tar.gz", + "extensionIdentifier" : "test.fool-1.0", + "extensionAssemblyName" : "test.fool-1.0-assembly", "extensionBundleName" : "metron-test-parsers-1.0.bundle", - "extensionsBundleID" : "metron-test-parsers", - "extensionsBundleVersion" : "1.0.0", + "extensionBundleID" : "metron-test-parsers", + "extensionBundleVersion" : "1.0.0", "parserExtensionParserName" : [ "test2", "test" ] } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/metron/blob/09a62c54/metron-platform/metron-management/src/test/java/org/apache/metron/management/ConfigurationFunctionsTest.java ---------------------------------------------------------------------- diff --git a/metron-platform/metron-management/src/test/java/org/apache/metron/management/ConfigurationFunctionsTest.java b/metron-platform/metron-management/src/test/java/org/apache/metron/management/ConfigurationFunctionsTest.java index af6b3da..7574418 100644 --- a/metron-platform/metron-management/src/test/java/org/apache/metron/management/ConfigurationFunctionsTest.java +++ b/metron-platform/metron-management/src/test/java/org/apache/metron/management/ConfigurationFunctionsTest.java @@ -125,10 +125,11 @@ public class ConfigurationFunctionsTest { /** { - "extensionAssemblyName" : "test.fool-1.0.tar.gz", + "extensionIdentifier" : "test.fool-1.0", + "extensionAssemblyName" : "test.fool-1.0-assembly", "extensionBundleName" : "metron-test-parsers-1.0.bundle", - "extensionsBundleID" : "metron-test-parsers", - "extensionsBundleVersion" : "1.0.0", + "extensionBundleID" : "metron-test-parsers", + "extensionBundleVersion" : "1.0.0", "parserExtensionParserName" : [ "test2", "test" ] } */
