r4289 - in trunk/src: main/java/fr/ifremer/isisfish/datastore test/java/fr/ifremer/isisfish/datastore
Author: echatellier Date: 2015-06-23 16:39:29 +0000 (Tue, 23 Jun 2015) New Revision: 4289 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4289 Log: closes #7149: D?\195?\169tecter la non pr?\195?\169sence de "package" dans un script Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/ObjectiveStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/OptimizationStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultInfoStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java trunk/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -78,6 +78,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return EXPORT_PATH; + } + /** * Get context (official VCS) export directory. * Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -81,6 +81,13 @@ } /** + * Get package name where script should be declared. + * + * @return package declaration + */ + public abstract String getPackage(); + + /** * Return class fully qualified name. * * @return class name including package name @@ -122,8 +129,25 @@ * @return 0 si la compilation a reussi, une autre valeur sinon */ public int compile(boolean force, PrintWriter out) { - return CompileHelper.compile(this, IsisFish.config + int result = CompileHelper.compile(this, IsisFish.config .getCompileDirectory(), force, out); + + // add a specific isi test for "package xxx;" declaration that is NOT an error + // in pur Java, but is for isis fish + if (result == 0) { + String content = getContent(); + String packageDeclaration = "package " + getPackage() + ";"; + if (!content.contains(packageDeclaration)) { + if (out != null) { + out.println("Script doesn't contains mandatory package declaration:"); + out.println(" " + packageDeclaration); + } + + result = 2; + } + } + + return result; } /** Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ObjectiveStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/ObjectiveStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/ObjectiveStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -65,6 +65,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return OBJECTIVE_PATH; + } + /** * Get context (official VCS) rule directory. * Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/OptimizationStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/OptimizationStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/OptimizationStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -65,6 +65,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return OPTIMIZATION_PATH; + } + /** * Get context (official VCS) rule directory. * Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultInfoStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultInfoStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultInfoStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -70,6 +70,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return RESULT_INFO_PATH; + } + /** * Get context (official VCS) resultInfo directory. * Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -81,6 +81,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return RULE_PATH; + } + /** * Get context (official VCS) rule directory. * Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -67,6 +67,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return SCRIPT_PATH; + } + /** * Get context (official VCS) script directory. * Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -76,6 +76,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return SENSITIVITY_ANALYSIS_PATH; + } + /** * Get sensitivity storage directory. * Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -78,6 +78,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return SIMULATION_PLAN_PATH; + } + /** * Get context (official VCS) simulation plan directory. * Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -65,6 +65,11 @@ super(rootSrc, directory, name); } + @Override + public String getPackage() { + return SIMULATOR_PATH; + } + /** * Get context (official VCS) simulator directory. * Modified: trunk/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java =================================================================== --- trunk/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java 2015-06-23 16:15:29 UTC (rev 4288) +++ trunk/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java 2015-06-23 16:39:29 UTC (rev 4289) @@ -94,4 +94,43 @@ Assert.assertEquals(0, compileResult); } + /** + * Test que l'absence de "package" est bien détectée. + * + * @throws Exception + */ + @Test + public void testNewRuleWithMissingPackage() throws Exception { + + String fileName = "TestRule1"; + + RuleStorage ruleStorage = RuleStorage.createRule(fileName, Location.OFFICIAL); + + // get template + Template template = freemarkerConfiguration + .getTemplate(RuleStorage.RULE_TEMPLATE); + + // context values + Map<String, Object> root = new HashMap<String, Object>(); + // FIXME what is category ? + root.put("category", ""); + root.put("name", fileName); + root.put("date", new Date()); + root.put("author", IsisFish.config.getUserName()); + root.put("email", IsisFish.config.getUserMail()); + + // process template + Writer out = new StringWriter(); + template.process(root, out); + out.flush(); + String content = out.toString(); + + content = content.replace("rules;", "roles;"); // simulate bad package name + ruleStorage.setContent(content); + + // 2 = compile error + int compileResult = ruleStorage.compile(false, null); + Assert.assertEquals(2, compileResult); + } + }
participants (1)
-
echatellier@users.forge.codelutin.com