Skip to content

Commit 3661e86

Browse files
authored
Merge pull request #397 from rakshitkr/read-latest-ruleset-fix
Fix reading rulesets from eclipse installation directory
2 parents 01a11b0 + d94fc0e commit 3661e86

4 files changed

Lines changed: 15 additions & 12 deletions

File tree

plugins/de.cognicrypt.codegenerator/src/main/java/de/cognicrypt/codegenerator/ui/contentassist/CustomCompletionProposalComputer.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,17 @@
1717

1818
import de.cognicrypt.codegenerator.Activator;
1919
import de.cognicrypt.core.Constants;
20+
import de.cognicrypt.utils.CrySLUtils;
2021

2122

2223
@SuppressWarnings("restriction")
2324
public class CustomCompletionProposalComputer extends JavaCompletionProposalComputer {
2425

26+
static String JCA_LATEST_ECLIPSE_RULES_DIR = Constants.ECLIPSE_RULES_DIR + Constants.innerFileSeparator + Constants.Rules.JavaCryptographicArchitecture.toString() + Constants.innerFileSeparator +
27+
CrySLUtils.getRuleVersions(Constants.Rules.JavaCryptographicArchitecture.toString())[CrySLUtils.getRuleVersions(Constants.Rules.JavaCryptographicArchitecture.toString()).length - 1] +
28+
Constants.innerFileSeparator + Constants.Rules.JavaCryptographicArchitecture.toString();
2529

26-
static private List<String> ruleNames = readClassnames(Constants.JCA_LATEST_ECLIPSE_RULES_DIR);
30+
static private List<String> ruleNames = readClassnames(JCA_LATEST_ECLIPSE_RULES_DIR);
2731

2832
@Override
2933
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {

plugins/de.cognicrypt.core/src/de/cognicrypt/core/Constants.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77

88
package de.cognicrypt.core;
99

10+
import org.eclipse.core.runtime.Platform;
1011
import org.eclipse.swt.graphics.Point;
1112
import org.eclipse.swt.graphics.Rectangle;
1213

13-
import de.cognicrypt.utils.CrySLUtils;
14-
1514
/**
1615
* This class comprises all constants that are used by the plugin.
1716
*/
@@ -582,11 +581,7 @@ public String toString() {
582581
// define a correct ID (get range of possible ones)
583582
public static final int JDT_PROBLEM_ID = 10000000;
584583
public final static String RELATIVE_RULES_DIR = "resources/CrySLRules";
585-
public final static String ECLIPSE_RULES_DIR = System.getProperty("user.dir");
586-
public final static String JCA_LATEST_ECLIPSE_RULES_DIR = Constants.ECLIPSE_RULES_DIR + Constants.innerFileSeparator + Constants.Rules.JavaCryptographicArchitecture.toString() + Constants.innerFileSeparator +
587-
CrySLUtils.getRuleVersions(Constants.Rules.JavaCryptographicArchitecture.toString())[CrySLUtils.getRuleVersions(Constants.Rules.JavaCryptographicArchitecture.toString()).length - 1] +
588-
Constants.innerFileSeparator + Constants.Rules.JavaCryptographicArchitecture.toString();
589-
584+
public final static String ECLIPSE_RULES_DIR = Platform.getInstallLocation().getURL().getPath() + RELATIVE_RULES_DIR;
590585
public static final String cryslFileEnding = ".crysl";
591586
public static final String cryslEditorID = "de.darmstadt.tu.crossing.CrySL";
592587
public static final String HEALTHY = "Secure";

plugins/de.cognicrypt.core/src/de/cognicrypt/utils/CrySLUtils.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
import de.cognicrypt.core.Constants;
2222

2323
public class CrySLUtils {
24+
25+
static String JCA_LATEST_ECLIPSE_RULES_DIR = Constants.ECLIPSE_RULES_DIR + Constants.innerFileSeparator + Constants.Rules.JavaCryptographicArchitecture.toString() + Constants.innerFileSeparator +
26+
CrySLUtils.getRuleVersions(Constants.Rules.JavaCryptographicArchitecture.toString())[CrySLUtils.getRuleVersions(Constants.Rules.JavaCryptographicArchitecture.toString()).length - 1] +
27+
Constants.innerFileSeparator + Constants.Rules.JavaCryptographicArchitecture.toString();
2428

2529
public static List<TransitionEdge> getOutgoingEdges(Collection<TransitionEdge> collection, final StateNode curNode, final StateNode notTo) {
2630
final List<TransitionEdge> outgoingEdges = new ArrayList<>();
@@ -60,7 +64,7 @@ protected static List<CrySLRule> readCrySLRules(String rulesFolder) {
6064

6165
public static List<CrySLRule> readCrySLRules() {
6266
return Stream.of(readCrySLRules(Utils.getResourceFromWithin(Constants.RELATIVE_RULES_DIR).getAbsolutePath()),
63-
readCrySLRules(Constants.ECLIPSE_RULES_DIR + Constants.outerFileSeparator + "JavaCryptographicArchitecture")).flatMap(Collection::stream).collect(Collectors.toList());
67+
readCrySLRules(JCA_LATEST_ECLIPSE_RULES_DIR)).flatMap(Collection::stream).collect(Collectors.toList());
6468
}
6569

6670
/**
@@ -72,7 +76,7 @@ public static List<CrySLRule> readCrySLRules() {
7276
*/
7377

7478
public static CrySLRule getCrySLRule(String cryslRule) throws MalformedURLException {
75-
File ruleRes = new File(Constants.JCA_LATEST_ECLIPSE_RULES_DIR + Constants.innerFileSeparator + cryslRule + RuleFormat.SOURCE.toString());
79+
File ruleRes = new File(JCA_LATEST_ECLIPSE_RULES_DIR + Constants.innerFileSeparator + cryslRule + RuleFormat.SOURCE.toString());
7680
if (ruleRes == null || !ruleRes.exists() || !ruleRes.canRead()) {
7781
ruleRes = Utils.getResourceFromWithin(Constants.RELATIVE_CUSTOM_RULES_DIR + Constants.innerFileSeparator + cryslRule + RuleFormat.SOURCE.toString(), de.cognicrypt.core.Activator.PLUGIN_ID);
7882
}
@@ -86,7 +90,7 @@ public static CrySLRule getCrySLRule(String cryslRule) throws MalformedURLExcept
8690
*/
8791
public static String[] getRuleVersions(String ruleSet){
8892
List<String> versions = new ArrayList<String>();
89-
File path = new File(System.getProperty("user.dir") + File.separator + ruleSet);
93+
File path = new File(Constants.ECLIPSE_RULES_DIR + File.separator + ruleSet);
9094
File[] innerDirs = path.listFiles();
9195
if (innerDirs == null) {
9296
return null;

plugins/de.cognicrypt.staticanalyzer/src/de/cognicrypt/staticanalyzer/utilities/ArtifactUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public void characters(char ch[], int start, int length) throws SAXException {
148148
DefaultArtifactVersion min = new DefaultArtifactVersion(minVersion.toString());
149149
DefaultArtifactVersion cur = new DefaultArtifactVersion(version);
150150
if (cur.compareTo(min) >= 0) {
151-
downloadRulesetArtifact(groupId[0], artifactId[0], version, new File(System.getProperty("user.dir")));
151+
downloadRulesetArtifact(groupId[0], artifactId[0], version, new File(Constants.ECLIPSE_RULES_DIR));
152152
}
153153
}
154154
}

0 commit comments

Comments
 (0)