fixes to regression tests:
now, for me, code works using e44 with maven dalvik tests refactored for mobile version with android dev tools IDE tests Eclipse metadata fixed to make e44 work for me new android entrypoint to fix failure in new droidbench tests
This commit is contained in:
parent
1ea7746533
commit
43c37d6d0e
|
@ -6,6 +6,7 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annota
|
||||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||||
|
|
|
@ -4,5 +4,4 @@ Bundle-Name: Data Plug-in
|
||||||
Bundle-SymbolicName: com.ibm.wala.cast.java.test.data
|
Bundle-SymbolicName: com.ibm.wala.cast.java.test.data
|
||||||
Bundle-Version: 1.3.4.qualifier
|
Bundle-Version: 1.3.4.qualifier
|
||||||
Bundle-Vendor: IBM
|
Bundle-Vendor: IBM
|
||||||
Bundle-ActivationPolicy: lazy
|
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||||
|
|
|
@ -17,7 +17,7 @@ import com.ibm.wala.analysis.typeInference.PrimitiveType;
|
||||||
import com.ibm.wala.analysis.typeInference.TypeAbstraction;
|
import com.ibm.wala.analysis.typeInference.TypeAbstraction;
|
||||||
import com.ibm.wala.analysis.typeInference.TypeVariable;
|
import com.ibm.wala.analysis.typeInference.TypeVariable;
|
||||||
import com.ibm.wala.cast.analysis.typeInference.AstTypeInference;
|
import com.ibm.wala.cast.analysis.typeInference.AstTypeInference;
|
||||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
import com.ibm.wala.cast.ir.ssa.CAstBinaryOp;
|
||||||
import com.ibm.wala.cast.java.ssa.AstJavaInstructionVisitor;
|
import com.ibm.wala.cast.java.ssa.AstJavaInstructionVisitor;
|
||||||
import com.ibm.wala.cast.java.ssa.AstJavaInvokeInstruction;
|
import com.ibm.wala.cast.java.ssa.AstJavaInvokeInstruction;
|
||||||
import com.ibm.wala.cast.java.ssa.EnclosingObjectReference;
|
import com.ibm.wala.cast.java.ssa.EnclosingObjectReference;
|
||||||
|
@ -40,8 +40,8 @@ public class AstJavaTypeInference extends AstTypeInference {
|
||||||
public void visitBinaryOp(SSABinaryOpInstruction instruction) {
|
public void visitBinaryOp(SSABinaryOpInstruction instruction) {
|
||||||
if (doPrimitives) {
|
if (doPrimitives) {
|
||||||
IBinaryOpInstruction.IOperator op = instruction.getOperator();
|
IBinaryOpInstruction.IOperator op = instruction.getOperator();
|
||||||
if (op == AstConstants.BinaryOp.EQ || op == AstConstants.BinaryOp.NE || op == AstConstants.BinaryOp.LT
|
if (op == CAstBinaryOp.EQ || op == CAstBinaryOp.NE || op == CAstBinaryOp.LT
|
||||||
|| op == AstConstants.BinaryOp.GE || op == AstConstants.BinaryOp.GT || op == AstConstants.BinaryOp.LE) {
|
|| op == CAstBinaryOp.GE || op == CAstBinaryOp.GT || op == CAstBinaryOp.LE) {
|
||||||
result = new DeclaredTypeOperator(language.getPrimitive(language.getConstantType(Boolean.TRUE)));
|
result = new DeclaredTypeOperator(language.getPrimitive(language.getConstantType(Boolean.TRUE)));
|
||||||
} else {
|
} else {
|
||||||
result = new PrimAndStringOp();
|
result = new PrimAndStringOp();
|
||||||
|
|
|
@ -42,7 +42,7 @@ public abstract class AbstractFieldBasedTest extends TestJSCallGraphShape {
|
||||||
protected JSCallGraph runTest(URL url, Object[][] assertions, BuilderType... builderTypes) throws IOException, WalaException, Error, CancelException {
|
protected JSCallGraph runTest(URL url, Object[][] assertions, BuilderType... builderTypes) throws IOException, WalaException, Error, CancelException {
|
||||||
JSCallGraph cg = null;
|
JSCallGraph cg = null;
|
||||||
for(BuilderType builderType : builderTypes) {
|
for(BuilderType builderType : builderTypes) {
|
||||||
ProgressMaster monitor = ProgressMaster.make(new NullProgressMonitor(), 30000, true);
|
ProgressMaster monitor = ProgressMaster.make(new NullProgressMonitor(), 45000, true);
|
||||||
try {
|
try {
|
||||||
cg = util.buildCG(url, builderType, monitor, false).fst;
|
cg = util.buildCG(url, builderType, monitor, false).fst;
|
||||||
System.err.println(cg);
|
System.err.println(cg);
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
|
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
<listEntry value="/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestMozillaBugPagesRhino.java"/>
|
<listEntry value="/com.ibm.wala.cast.js.rhino.test"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
<listEntry value="1"/>
|
<listEntry value="4"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="/tmp/rhinojs.out"/>
|
<stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="/tmp/rhinojs.out"/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
|
@ -14,6 +14,7 @@
|
||||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||||
|
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6"/>
|
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.cast.js.test.TestMozillaBugPagesRhino"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.cast.js.test.TestMozillaBugPagesRhino"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.ibm.wala.cast.js.test.data/examples-src" path="3" type="2"/> "/>
|
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.ibm.wala.cast.js.test.data/examples-src" path="3" type="2"/> "/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7/"/>
|
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/1.7.0 25/"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx2048M -verbose:gc -ea"/>
|
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx2048M -verbose:gc -ea"/>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// $Id: drupal.js,v 1.41.2.4 2009/07/21 08:59:10 goba Exp $
|
// $Id: drupal.js,v 1.41.2.4 2009/07/21 08:59:10 goba Exp $
|
||||||
|
|
||||||
var Drupal = Drupal || { 'settings': {}, 'behaviors': {}, 'themes': {}, 'locale': {} };
|
var Drupal = Drupal || { 'settings': {}, 'behaviors': {}, 'themes': {}, 'locale': {} };
|
||||||
|
|
||||||
|
|
|
@ -12,5 +12,5 @@ var fs2 = [];
|
||||||
}
|
}
|
||||||
})(fs1, fs2);
|
})(fs1, fs2);
|
||||||
|
|
||||||
fs[fs2[2]]();
|
(fs[fs2[2]])();
|
||||||
fs[fs2[3]]();
|
(fs[fs2[3]])();
|
||||||
|
|
|
@ -10,10 +10,12 @@
|
||||||
<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
|
<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
|
||||||
<mapEntry key="[run]" value="org.eclipse.jdt.junit.launchconfig"/>
|
<mapEntry key="[run]" value="org.eclipse.jdt.junit.launchconfig"/>
|
||||||
</mapAttribute>
|
</mapAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="/tmp/cg.out"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||||
|
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.cast.js.test.TestSimpleCallGraphShapeRhino"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.cast.js.test.TestSimpleCallGraphShapeRhino"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx256M -Dcom.ibm.wala.tracefile=/tmp/jssimplecg.out -ea"/>
|
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx256M -Dcom.ibm.wala.tracefile=/tmp/jssimplecg.out -ea"/>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7"/>
|
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/1.7.0 25/"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.test"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.test"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
|
|
@ -13,23 +13,11 @@ package com.ibm.wala.cast.ir.ssa;
|
||||||
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
||||||
import com.ibm.wala.shrikeBT.IUnaryOpInstruction;
|
import com.ibm.wala.shrikeBT.IUnaryOpInstruction;
|
||||||
|
|
||||||
public interface AstConstants {
|
public enum CAstBinaryOp implements IBinaryOpInstruction.IOperator {
|
||||||
|
|
||||||
public enum BinaryOp implements IBinaryOpInstruction.IOperator {
|
|
||||||
CONCAT, EQ, NE, LT, GE, GT, LE, STRICT_EQ, STRICT_NE;
|
CONCAT, EQ, NE, LT, GE, GT, LE, STRICT_EQ, STRICT_NE;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString().toLowerCase();
|
return super.toString().toLowerCase();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public enum UnaryOp implements IUnaryOpInstruction.IOperator {
|
|
||||||
MINUS, BITNOT, PLUS;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return super.toString().toLowerCase();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Copyright (c) 2002 - 2006 IBM Corporation.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* IBM Corporation - initial API and implementation
|
||||||
|
*****************************************************************************/
|
||||||
|
package com.ibm.wala.cast.ir.ssa;
|
||||||
|
|
||||||
|
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
||||||
|
import com.ibm.wala.shrikeBT.IUnaryOpInstruction;
|
||||||
|
|
||||||
|
|
||||||
|
public enum CAstUnaryOp implements IUnaryOpInstruction.IOperator {
|
||||||
|
MINUS, BITNOT, PLUS;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return super.toString().toLowerCase();
|
||||||
|
}
|
||||||
|
}
|
|
@ -23,7 +23,6 @@ import java.util.Set;
|
||||||
|
|
||||||
import com.ibm.wala.cast.ir.ssa.AssignInstruction;
|
import com.ibm.wala.cast.ir.ssa.AssignInstruction;
|
||||||
import com.ibm.wala.cast.ir.ssa.AstAssertInstruction;
|
import com.ibm.wala.cast.ir.ssa.AstAssertInstruction;
|
||||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
|
||||||
import com.ibm.wala.cast.ir.ssa.AstEchoInstruction;
|
import com.ibm.wala.cast.ir.ssa.AstEchoInstruction;
|
||||||
import com.ibm.wala.cast.ir.ssa.AstGlobalRead;
|
import com.ibm.wala.cast.ir.ssa.AstGlobalRead;
|
||||||
import com.ibm.wala.cast.ir.ssa.AstGlobalWrite;
|
import com.ibm.wala.cast.ir.ssa.AstGlobalWrite;
|
||||||
|
@ -31,6 +30,8 @@ import com.ibm.wala.cast.ir.ssa.AstIsDefinedInstruction;
|
||||||
import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access;
|
import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access;
|
||||||
import com.ibm.wala.cast.ir.ssa.AstLexicalRead;
|
import com.ibm.wala.cast.ir.ssa.AstLexicalRead;
|
||||||
import com.ibm.wala.cast.ir.ssa.AstLexicalWrite;
|
import com.ibm.wala.cast.ir.ssa.AstLexicalWrite;
|
||||||
|
import com.ibm.wala.cast.ir.ssa.CAstBinaryOp;
|
||||||
|
import com.ibm.wala.cast.ir.ssa.CAstUnaryOp;
|
||||||
import com.ibm.wala.cast.ir.ssa.EachElementGetInstruction;
|
import com.ibm.wala.cast.ir.ssa.EachElementGetInstruction;
|
||||||
import com.ibm.wala.cast.ir.ssa.EachElementHasNextInstruction;
|
import com.ibm.wala.cast.ir.ssa.EachElementHasNextInstruction;
|
||||||
import com.ibm.wala.cast.ir.ssa.SSAConversion;
|
import com.ibm.wala.cast.ir.ssa.SSAConversion;
|
||||||
|
@ -3018,13 +3019,13 @@ public abstract class AstTranslator extends CAstVisitor<AstTranslator.WalkContex
|
||||||
|
|
||||||
protected IUnaryOpInstruction.IOperator translateUnaryOpcode(CAstNode op) {
|
protected IUnaryOpInstruction.IOperator translateUnaryOpcode(CAstNode op) {
|
||||||
if (op == CAstOperator.OP_BITNOT)
|
if (op == CAstOperator.OP_BITNOT)
|
||||||
return AstConstants.UnaryOp.BITNOT;
|
return CAstUnaryOp.BITNOT;
|
||||||
else if (op == CAstOperator.OP_NOT)
|
else if (op == CAstOperator.OP_NOT)
|
||||||
return IUnaryOpInstruction.Operator.NEG;
|
return IUnaryOpInstruction.Operator.NEG;
|
||||||
else if (op == CAstOperator.OP_SUB)
|
else if (op == CAstOperator.OP_SUB)
|
||||||
return AstConstants.UnaryOp.MINUS;
|
return CAstUnaryOp.MINUS;
|
||||||
else if (op == CAstOperator.OP_ADD)
|
else if (op == CAstOperator.OP_ADD)
|
||||||
return AstConstants.UnaryOp.PLUS;
|
return CAstUnaryOp.PLUS;
|
||||||
else
|
else
|
||||||
Assertions.UNREACHABLE("cannot translate " + CAstPrinter.print(op));
|
Assertions.UNREACHABLE("cannot translate " + CAstPrinter.print(op));
|
||||||
return null;
|
return null;
|
||||||
|
@ -3055,23 +3056,23 @@ public abstract class AstTranslator extends CAstVisitor<AstTranslator.WalkContex
|
||||||
else if (op == CAstOperator.OP_BIT_XOR)
|
else if (op == CAstOperator.OP_BIT_XOR)
|
||||||
return BinaryOpInstruction.Operator.XOR;
|
return BinaryOpInstruction.Operator.XOR;
|
||||||
else if (op == CAstOperator.OP_CONCAT)
|
else if (op == CAstOperator.OP_CONCAT)
|
||||||
return AstConstants.BinaryOp.CONCAT;
|
return CAstBinaryOp.CONCAT;
|
||||||
else if (op == CAstOperator.OP_EQ)
|
else if (op == CAstOperator.OP_EQ)
|
||||||
return AstConstants.BinaryOp.EQ;
|
return CAstBinaryOp.EQ;
|
||||||
else if (op == CAstOperator.OP_STRICT_EQ)
|
else if (op == CAstOperator.OP_STRICT_EQ)
|
||||||
return AstConstants.BinaryOp.STRICT_EQ;
|
return CAstBinaryOp.STRICT_EQ;
|
||||||
else if (op == CAstOperator.OP_GE)
|
else if (op == CAstOperator.OP_GE)
|
||||||
return AstConstants.BinaryOp.GE;
|
return CAstBinaryOp.GE;
|
||||||
else if (op == CAstOperator.OP_GT)
|
else if (op == CAstOperator.OP_GT)
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
else if (op == CAstOperator.OP_LE)
|
else if (op == CAstOperator.OP_LE)
|
||||||
return AstConstants.BinaryOp.LE;
|
return CAstBinaryOp.LE;
|
||||||
else if (op == CAstOperator.OP_LT)
|
else if (op == CAstOperator.OP_LT)
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
else if (op == CAstOperator.OP_NE)
|
else if (op == CAstOperator.OP_NE)
|
||||||
return AstConstants.BinaryOp.NE;
|
return CAstBinaryOp.NE;
|
||||||
else if (op == CAstOperator.OP_STRICT_NE)
|
else if (op == CAstOperator.OP_STRICT_NE)
|
||||||
return AstConstants.BinaryOp.STRICT_NE;
|
return CAstBinaryOp.STRICT_NE;
|
||||||
else {
|
else {
|
||||||
Assertions.UNREACHABLE("cannot translate " + CAstPrinter.print(op));
|
Assertions.UNREACHABLE("cannot translate " + CAstPrinter.print(op));
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -9,3 +9,5 @@ org\/openide\/.*
|
||||||
com\/ibm\/crypto\/.*
|
com\/ibm\/crypto\/.*
|
||||||
com\/ibm\/security\/.*
|
com\/ibm\/security\/.*
|
||||||
org\/apache\/xerces\/.*
|
org\/apache\/xerces\/.*
|
||||||
|
dalvik\/.*
|
||||||
|
java\/io\/ObjectStreamClass*
|
|
@ -1,14 +1,14 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
<listEntry value="/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/ExportTypeHierarchyToXML.java"/>
|
<listEntry value="/com.ibm.wala.core.tests"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
<listEntry value="1"/>
|
<listEntry value="4"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.examples.drivers.ExportTypeHierarchyToXML"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.examples.drivers.ExportTypeHierarchyToXML"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-classpath c:/temp/testdata/JLex.jar"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-classpath c:/temp/testdata/JLex.jar"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx500M"/>
|
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx500M"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
|
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
|
||||||
<listEntry value="/com.ibm.wala.core.tests"/>
|
|
||||||
</listAttribute>
|
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
|
||||||
<listEntry value="4"/>
|
|
||||||
</listAttribute>
|
|
||||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=com.ibm.wala.core.tests/src<com.ibm.wala.core.tests.demandpa"/>
|
|
||||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
|
|
||||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
|
||||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="com.ibm.wala.core.tests" path="1"
|
|
|
@ -24,8 +24,8 @@
|
||||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry path="3" projectName="com.ibm.wala.core.testdata" type="1"/> "/>
|
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry path="3" projectName="com.ibm.wala.core.testdata" type="1"/> "/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7"/>
|
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/1.7.0 25/"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx800M -verbose:gc -Dcom.ibm.wala.util.fixedpoint.impl.verbose=true -XX:-UseSplitVerifier"/>
|
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx800M -verbose:gc -Dcom.ibm.wala.util.fixedpoint.impl.verbose=true"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<version>4.11</version>
|
<version>4.10</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -3,12 +3,10 @@ package com.ibm.wala.dalvik.test;
|
||||||
import static com.ibm.wala.properties.WalaProperties.ANDROID_RT_JAR;
|
import static com.ibm.wala.properties.WalaProperties.ANDROID_RT_JAR;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileFilter;
|
||||||
import java.io.FilenameFilter;
|
import java.io.FilenameFilter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.MalformedURLException;
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
@ -61,33 +59,37 @@ public abstract class DalvikTestBase extends DynamicCallGraphTestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static URI[] androidLibs() {
|
public static URI[] androidLibs() {
|
||||||
|
System.err.println(System.getProperty("java.vm.name"));
|
||||||
if ("Dalvik".equals(System.getProperty("java.vm.name"))) {
|
if ("Dalvik".equals(System.getProperty("java.vm.name"))) {
|
||||||
try {
|
List<URI> libs = new ArrayList<URI>();
|
||||||
return new URI[]{
|
for(File f : new File("/system/framework/").listFiles(new FileFilter() {
|
||||||
new URL("file:///system/framework/core.jar").toURI(),
|
@Override
|
||||||
new URL("file:///system/framework/framework.jar").toURI(),
|
public boolean accept(File pathname) {
|
||||||
new URL("file:///system/framework/framework2.jar").toURI(),
|
String name = pathname.getName();
|
||||||
new URL("file:///system/framework/framework3.jar").toURI()
|
return
|
||||||
};
|
(name.startsWith("core") || name.startsWith("framework")) &&
|
||||||
} catch (MalformedURLException e) {
|
(name.endsWith("jar") || name.endsWith("apk"));
|
||||||
assert false : e;
|
}
|
||||||
return null;
|
}))
|
||||||
} catch (URISyntaxException e) {
|
{
|
||||||
assert false : e;
|
System.out.println("adding " + f);
|
||||||
return null;
|
libs.add(f.toURI());
|
||||||
}
|
}
|
||||||
|
return libs.toArray(new URI[ libs.size() ]);
|
||||||
} else {
|
} else {
|
||||||
List<URI> libs = new ArrayList<URI>();
|
List<URI> libs = new ArrayList<URI>();
|
||||||
try {
|
try {
|
||||||
for(File lib : new File(walaProperties.getProperty(ANDROID_RT_JAR)).listFiles(new FilenameFilter() {
|
for(File lib : new File(walaProperties.getProperty(ANDROID_RT_JAR)).listFiles(new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File dir, String name) {
|
public boolean accept(File dir, String name) {
|
||||||
return name.endsWith("dex") || name.endsWith("jar");
|
return name.endsWith("dex") || name.endsWith("jar") || name.endsWith("apk");
|
||||||
}
|
}
|
||||||
})) {
|
})) {
|
||||||
|
System.out.println("adding " + lib);
|
||||||
libs.add(lib.toURI());
|
libs.add(lib.toURI());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
System.out.println("unexpected " + e);
|
||||||
for(String l : WalaProperties.getJ2SEJarFiles()) {
|
for(String l : WalaProperties.getJ2SEJarFiles()) {
|
||||||
libs.add(new File(l).toURI());
|
libs.add(new File(l).toURI());
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.net.URI;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -43,7 +44,6 @@ import com.ibm.wala.ipa.callgraph.propagation.cfa.DefaultSSAInterpreter;
|
||||||
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
||||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||||
import com.ibm.wala.properties.WalaProperties;
|
|
||||||
import com.ibm.wala.shrikeBT.analysis.Analyzer.FailureException;
|
import com.ibm.wala.shrikeBT.analysis.Analyzer.FailureException;
|
||||||
import com.ibm.wala.shrikeCT.InvalidClassFileException;
|
import com.ibm.wala.shrikeCT.InvalidClassFileException;
|
||||||
import com.ibm.wala.ssa.SSAInstruction;
|
import com.ibm.wala.ssa.SSAInstruction;
|
||||||
|
@ -55,7 +55,6 @@ import com.ibm.wala.util.CancelException;
|
||||||
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
||||||
import com.ibm.wala.util.NullProgressMonitor;
|
import com.ibm.wala.util.NullProgressMonitor;
|
||||||
import com.ibm.wala.util.Predicate;
|
import com.ibm.wala.util.Predicate;
|
||||||
import com.ibm.wala.util.WalaException;
|
|
||||||
import com.ibm.wala.util.collections.FilterIterator;
|
import com.ibm.wala.util.collections.FilterIterator;
|
||||||
import com.ibm.wala.util.collections.HashSetFactory;
|
import com.ibm.wala.util.collections.HashSetFactory;
|
||||||
import com.ibm.wala.util.collections.MapIterator;
|
import com.ibm.wala.util.collections.MapIterator;
|
||||||
|
@ -99,18 +98,30 @@ public class DalvikCallGraphTestBase extends DalvikTestBase {
|
||||||
run(mainClass.substring(1).replace('/', '.'), "LibraryExclusions.txt", args);
|
run(mainClass.substring(1).replace('/', '.'), "LibraryExclusions.txt", args);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFile) throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException {
|
||||||
return makeAPKCallGraph(apkFileName, new NullProgressMonitor());
|
return makeAPKCallGraph(apkFile, androidLibs());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, URI[] androidLibs) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||||
|
return makeAPKCallGraph(apkFileName, new NullProgressMonitor(), androidLibs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, ReflectionOptions options) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, ReflectionOptions options) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||||
return makeAPKCallGraph(apkFileName, new NullProgressMonitor(), options);
|
return makeAPKCallGraph(apkFileName, new NullProgressMonitor(), options, androidLibs());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, ReflectionOptions options, URI[] androidLibs) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||||
|
return makeAPKCallGraph(apkFileName, new NullProgressMonitor(), options, androidLibs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, IProgressMonitor monitor) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, IProgressMonitor monitor, URI[] androidLibs) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||||
return makeAPKCallGraph(apkFileName, monitor, ReflectionOptions.NONE);
|
return makeAPKCallGraph(apkFileName, monitor, ReflectionOptions.NONE, androidLibs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String absolutePath, IProgressMonitor pm, ReflectionOptions none) throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException {
|
||||||
|
return makeAPKCallGraph(absolutePath, pm, none, androidLibs());
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private static SSAContextInterpreter makeDefaultInterpreter(AnalysisOptions options, AnalysisCache cache) {
|
private static SSAContextInterpreter makeDefaultInterpreter(AnalysisOptions options, AnalysisCache cache) {
|
||||||
return new DefaultSSAInterpreter(options, cache) {
|
return new DefaultSSAInterpreter(options, cache) {
|
||||||
|
@ -137,13 +148,13 @@ public class DalvikCallGraphTestBase extends DalvikTestBase {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, IProgressMonitor monitor, ReflectionOptions policy) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, IProgressMonitor monitor, ReflectionOptions policy, URI[] androidLibs) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||||
AnalysisScope scope =
|
AnalysisScope scope =
|
||||||
AndroidAnalysisScope.setUpAndroidAnalysisScope(
|
AndroidAnalysisScope.setUpAndroidAnalysisScope(
|
||||||
new File(apkFileName).toURI(),
|
new File(apkFileName).toURI(),
|
||||||
"AndroidRegressionExclusions.txt",
|
"AndroidRegressionExclusions.txt",
|
||||||
CallGraphTestUtil.class.getClassLoader(),
|
CallGraphTestUtil.class.getClassLoader(),
|
||||||
androidLibs());
|
androidLibs);
|
||||||
|
|
||||||
final IClassHierarchy cha = ClassHierarchy.make(scope);
|
final IClassHierarchy cha = ClassHierarchy.make(scope);
|
||||||
|
|
||||||
|
@ -199,4 +210,5 @@ public class DalvikCallGraphTestBase extends DalvikTestBase {
|
||||||
|
|
||||||
return Pair.make(callGraph, ptrAnalysis);
|
return Pair.make(callGraph, ptrAnalysis);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,8 +77,9 @@ public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
|
||||||
uncalledFunctions.put("VirtualDispatch2.apk", x);
|
uncalledFunctions.put("VirtualDispatch2.apk", x);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertUserCodeReachable(CallGraph cg) throws InvalidClassFileException {
|
public static Set<IMethod> assertUserCodeReachable(CallGraph cg, Set<MethodReference> uncalled) throws InvalidClassFileException {
|
||||||
for(Iterator<IClass> clss = cg.getClassHierarchy().getLoader(ClassLoaderReference.Application).iterateAllClasses();
|
Set<IMethod> result = HashSetFactory.make();
|
||||||
|
for(Iterator<IClass> clss = cg.getClassHierarchy().getLoader(ClassLoaderReference.Application).iterateAllClasses();
|
||||||
clss.hasNext(); )
|
clss.hasNext(); )
|
||||||
{
|
{
|
||||||
IClass cls = clss.next();
|
IClass cls = clss.next();
|
||||||
|
@ -88,12 +89,16 @@ public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
|
||||||
if (! cls.getName().toString().startsWith("Landroid") && ! cls.getName().toString().equals("Lde/ecspride/R$styleable")) {
|
if (! cls.getName().toString().startsWith("Landroid") && ! cls.getName().toString().equals("Lde/ecspride/R$styleable")) {
|
||||||
for(IMethod m : cls.getDeclaredMethods()) {
|
for(IMethod m : cls.getDeclaredMethods()) {
|
||||||
if (!m.isInit() && !m.isAbstract() && !uncalled.contains(m.getReference())) {
|
if (!m.isInit() && !m.isAbstract() && !uncalled.contains(m.getReference())) {
|
||||||
Assert.assertFalse(m + "(" + m.getSourcePosition(0) + ") cannot be called in " + apkFile, cg.getNodes(m.getReference()).isEmpty());
|
if (! cg.getNodes(m.getReference()).isEmpty()) {
|
||||||
System.err.println("found " + m);
|
System.err.println("found " + m);
|
||||||
|
} else {
|
||||||
|
result.add(m);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private final String apkFile;
|
private final String apkFile;
|
||||||
|
@ -110,11 +115,12 @@ public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
|
||||||
System.err.println("testing " + apkFile + "...");
|
System.err.println("testing " + apkFile + "...");
|
||||||
Pair<CallGraph,PointerAnalysis<InstanceKey>> x = makeAPKCallGraph(apkFile, ReflectionOptions.ONE_FLOW_TO_CASTS_APPLICATION_GET_METHOD);
|
Pair<CallGraph,PointerAnalysis<InstanceKey>> x = makeAPKCallGraph(apkFile, ReflectionOptions.ONE_FLOW_TO_CASTS_APPLICATION_GET_METHOD);
|
||||||
//System.err.println(x.fst);
|
//System.err.println(x.fst);
|
||||||
assertUserCodeReachable(x.fst);
|
Set<IMethod> bad = assertUserCodeReachable(x.fst, uncalled);
|
||||||
|
Assert.assertTrue(bad + " should be empty", bad.isEmpty());
|
||||||
System.err.println("...success testing " + apkFile);
|
System.err.println("...success testing " + apkFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Set<String> skipTests = HashSetFactory.make();
|
private static final Set<String> skipTests = HashSetFactory.make();
|
||||||
static {
|
static {
|
||||||
// serialization issues
|
// serialization issues
|
||||||
skipTests.add("ServiceCommunication1.apk");
|
skipTests.add("ServiceCommunication1.apk");
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||||
|
<classpathentry exported="true" kind="lib" path="lib/dexlib-1.3.4-dev.jar"/>
|
||||||
|
<classpathentry exported="true" kind="lib" path="lib/guava-13.0.1.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/commons-cli-1.2.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/commons-cli-1.2.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/logback-classic-1.0.9.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/logback-classic-1.0.9.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/logback-core-1.0.9.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/logback-core-1.0.9.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.2.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.2.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/guava-13.0.1.jar"/>
|
|
||||||
<classpathentry kind="lib" path="lib/dexlib-1.3.4-dev.jar"/>
|
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -52,6 +52,7 @@ import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.jar.JarFile;
|
||||||
|
|
||||||
import org.jf.dexlib.ClassDefItem;
|
import org.jf.dexlib.ClassDefItem;
|
||||||
import org.jf.dexlib.DexFile;
|
import org.jf.dexlib.DexFile;
|
||||||
|
@ -61,6 +62,7 @@ import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.ibm.wala.classLoader.Module;
|
import com.ibm.wala.classLoader.Module;
|
||||||
import com.ibm.wala.classLoader.ModuleEntry;
|
import com.ibm.wala.classLoader.ModuleEntry;
|
||||||
|
import com.ibm.wala.util.io.TemporaryFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A module which is a wrapper around .dex and .apk file.
|
* A module which is a wrapper around .dex and .apk file.
|
||||||
|
@ -73,12 +75,35 @@ public class DexFileModule implements Module {
|
||||||
private final DexFile dexfile;
|
private final DexFile dexfile;
|
||||||
private final Collection<ModuleEntry> entries;
|
private final Collection<ModuleEntry> entries;
|
||||||
|
|
||||||
|
public static DexFileModule make(File f) throws IllegalArgumentException, IOException {
|
||||||
|
if (f.getName().endsWith("jar")) {
|
||||||
|
return new DexFileModule(new JarFile(f));
|
||||||
|
} else {
|
||||||
|
return new DexFileModule(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static File tf(JarFile f) {
|
||||||
|
String name = f.getName();
|
||||||
|
if (name.indexOf('/') >= 0) {
|
||||||
|
name = name.substring(name.lastIndexOf('/')+1);
|
||||||
|
}
|
||||||
|
File tf = new File(System.getProperty("java.io.tmpdir") + "/" + name + "_classes.dex");
|
||||||
|
tf.deleteOnExit();
|
||||||
|
System.err.println("using " + tf);
|
||||||
|
return tf;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DexFileModule(JarFile f) throws IllegalArgumentException, IOException {
|
||||||
|
this(TemporaryFile.streamToFile(tf(f), f.getInputStream(f.getEntry("classes.dex"))));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param f
|
* @param f
|
||||||
* the .dex or .apk file
|
* the .dex or .apk file
|
||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
*/
|
*/
|
||||||
public DexFileModule(File f) throws IllegalArgumentException {
|
private DexFileModule(File f) throws IllegalArgumentException {
|
||||||
try {
|
try {
|
||||||
dexfile = new DexFile(f);
|
dexfile = new DexFile(f);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|
|
@ -153,7 +153,7 @@ public class WDexClassLoaderImpl extends ClassLoaderImpl {
|
||||||
ModuleEntry entry = (ModuleEntry) it.next();
|
ModuleEntry entry = (ModuleEntry) it.next();
|
||||||
if (entry instanceof DexModuleEntry) {
|
if (entry instanceof DexModuleEntry) {
|
||||||
result.add(entry);
|
result.add(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ package com.ibm.wala.dalvik.dex.instructions;
|
||||||
|
|
||||||
import org.jf.dexlib.Code.Opcode;
|
import org.jf.dexlib.Code.Opcode;
|
||||||
|
|
||||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
import com.ibm.wala.cast.ir.ssa.CAstBinaryOp;
|
||||||
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
||||||
import com.ibm.wala.dalvik.classLoader.Literal;
|
import com.ibm.wala.dalvik.classLoader.Literal;
|
||||||
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
||||||
|
@ -90,21 +90,21 @@ public class BinaryLiteralOperation extends Instruction {
|
||||||
switch(op)
|
switch(op)
|
||||||
{
|
{
|
||||||
case CMPL_FLOAT:
|
case CMPL_FLOAT:
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
case CMPG_FLOAT:
|
case CMPG_FLOAT:
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
case CMPL_DOUBLE:
|
case CMPL_DOUBLE:
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
case CMPG_DOUBLE:
|
case CMPG_DOUBLE:
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
case CMPL_LONG:
|
case CMPL_LONG:
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
case CMPG_LONG:
|
case CMPG_LONG:
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
case CMPL_INT:
|
case CMPL_INT:
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
case CMPG_INT:
|
case CMPG_INT:
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
case ADD_INT:
|
case ADD_INT:
|
||||||
return IBinaryOpInstruction.Operator.ADD;
|
return IBinaryOpInstruction.Operator.ADD;
|
||||||
case RSUB_INT:
|
case RSUB_INT:
|
||||||
|
|
|
@ -50,7 +50,7 @@ package com.ibm.wala.dalvik.dex.instructions;
|
||||||
|
|
||||||
import org.jf.dexlib.Code.Opcode;
|
import org.jf.dexlib.Code.Opcode;
|
||||||
|
|
||||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
import com.ibm.wala.cast.ir.ssa.CAstBinaryOp;
|
||||||
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
||||||
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
||||||
import com.ibm.wala.shrikeBT.IShiftInstruction;
|
import com.ibm.wala.shrikeBT.IShiftInstruction;
|
||||||
|
@ -89,21 +89,21 @@ public class BinaryOperation extends Instruction {
|
||||||
switch(op)
|
switch(op)
|
||||||
{
|
{
|
||||||
case CMPL_FLOAT:
|
case CMPL_FLOAT:
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
case CMPG_FLOAT:
|
case CMPG_FLOAT:
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
case CMPL_DOUBLE:
|
case CMPL_DOUBLE:
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
case CMPG_DOUBLE:
|
case CMPG_DOUBLE:
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
case CMPL_LONG:
|
case CMPL_LONG:
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
case CMPG_LONG:
|
case CMPG_LONG:
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
case CMPL_INT:
|
case CMPL_INT:
|
||||||
return AstConstants.BinaryOp.LT;
|
return CAstBinaryOp.LT;
|
||||||
case CMPG_INT:
|
case CMPG_INT:
|
||||||
return AstConstants.BinaryOp.GT;
|
return CAstBinaryOp.GT;
|
||||||
case ADD_INT:
|
case ADD_INT:
|
||||||
return IBinaryOpInstruction.Operator.ADD;
|
return IBinaryOpInstruction.Operator.ADD;
|
||||||
case SUB_INT:
|
case SUB_INT:
|
||||||
|
|
|
@ -50,7 +50,7 @@ package com.ibm.wala.dalvik.dex.instructions;
|
||||||
|
|
||||||
import org.jf.dexlib.Code.Opcode;
|
import org.jf.dexlib.Code.Opcode;
|
||||||
|
|
||||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
import com.ibm.wala.cast.ir.ssa.CAstUnaryOp;
|
||||||
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
||||||
import com.ibm.wala.shrikeBT.IUnaryOpInstruction;
|
import com.ibm.wala.shrikeBT.IUnaryOpInstruction;
|
||||||
import com.ibm.wala.shrikeBT.IUnaryOpInstruction.IOperator;
|
import com.ibm.wala.shrikeBT.IUnaryOpInstruction.IOperator;
|
||||||
|
@ -119,15 +119,15 @@ public class UnaryOperation extends Instruction {
|
||||||
{
|
{
|
||||||
// SSA unary ops
|
// SSA unary ops
|
||||||
case NOT:
|
case NOT:
|
||||||
return AstConstants.UnaryOp.BITNOT;
|
return CAstUnaryOp.BITNOT;
|
||||||
case NEGINT:
|
case NEGINT:
|
||||||
return IUnaryOpInstruction.Operator.NEG;
|
return IUnaryOpInstruction.Operator.NEG;
|
||||||
case NOTINT:
|
case NOTINT:
|
||||||
return AstConstants.UnaryOp.BITNOT;
|
return CAstUnaryOp.BITNOT;
|
||||||
case NEGLONG:
|
case NEGLONG:
|
||||||
return IUnaryOpInstruction.Operator.NEG;
|
return IUnaryOpInstruction.Operator.NEG;
|
||||||
case NOTLONG:
|
case NOTLONG:
|
||||||
return AstConstants.UnaryOp.BITNOT;
|
return CAstUnaryOp.BITNOT;
|
||||||
case NEGFLOAT:
|
case NEGFLOAT:
|
||||||
return IUnaryOpInstruction.Operator.NEG;
|
return IUnaryOpInstruction.Operator.NEG;
|
||||||
case NEGDOUBLE:
|
case NEGDOUBLE:
|
||||||
|
|
|
@ -89,10 +89,8 @@ public class DexAnalysisScopeReader extends AnalysisScopeReader {
|
||||||
|
|
||||||
ClassLoaderReference loader = scope.getLoader(AnalysisScope.APPLICATION);
|
ClassLoaderReference loader = scope.getLoader(AnalysisScope.APPLICATION);
|
||||||
final String path = classPath.getPath();
|
final String path = classPath.getPath();
|
||||||
if (path.endsWith(".jar")) {
|
if (path.endsWith(".jar") || path.endsWith(".apk") || path.endsWith(".dex")) {
|
||||||
scope.addToScope(loader, new JarFile(new File(classPath)));
|
scope.addToScope(loader, DexFileModule.make(new File(classPath)));
|
||||||
} else if (path.endsWith(".apk") || path.endsWith(".dex")) {
|
|
||||||
scope.addToScope(loader, new DexFileModule(new File(classPath)));
|
|
||||||
} else {
|
} else {
|
||||||
throw new IOException(
|
throw new IOException(
|
||||||
"could not determine type of classpath from file extension: "
|
"could not determine type of classpath from file extension: "
|
||||||
|
|
|
@ -47,8 +47,9 @@ public class AndroidAnalysisScope {
|
||||||
|
|
||||||
for(URI al : androidLib) {
|
for(URI al : androidLib) {
|
||||||
try {
|
try {
|
||||||
scope.addToScope(ClassLoaderReference.Primordial, new DexFileModule(new File(al)));
|
scope.addToScope(ClassLoaderReference.Primordial, DexFileModule.make(new File(al)));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
scope.addToScope(ClassLoaderReference.Primordial, new JarFileModule(new JarFile(new File(al))));
|
scope.addToScope(ClassLoaderReference.Primordial, new JarFileModule(new JarFile(new File(al))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,7 +59,7 @@ public class AndroidAnalysisScope {
|
||||||
scope.setLoaderImpl(ClassLoaderReference.Application,
|
scope.setLoaderImpl(ClassLoaderReference.Application,
|
||||||
"com.ibm.wala.dalvik.classLoader.WDexClassLoaderImpl");
|
"com.ibm.wala.dalvik.classLoader.WDexClassLoaderImpl");
|
||||||
|
|
||||||
scope.addToScope(ClassLoaderReference.Application, new DexFileModule(new File(classpath)));
|
scope.addToScope(ClassLoaderReference.Application, DexFileModule.make(new File(classpath)));
|
||||||
|
|
||||||
return scope;
|
return scope;
|
||||||
}
|
}
|
||||||
|
@ -79,12 +80,11 @@ public class AndroidAnalysisScope {
|
||||||
String[] paths = classPath.split(File.pathSeparator);
|
String[] paths = classPath.split(File.pathSeparator);
|
||||||
|
|
||||||
for (int i = 0; i < paths.length; i++) {
|
for (int i = 0; i < paths.length; i++) {
|
||||||
if (paths[i].endsWith(".jar")) { // handle jar file
|
if (paths[i].endsWith(".jar")
|
||||||
scope.addToScope(loader, new JarFile(paths[i]));
|
|| paths[i].endsWith(".apk")
|
||||||
} else if (paths[i].endsWith(".apk")
|
|
||||||
|| paths[i].endsWith(".dex")) { // Handle android file.
|
|| paths[i].endsWith(".dex")) { // Handle android file.
|
||||||
File f = new File(paths[i]);
|
File f = new File(paths[i]);
|
||||||
scope.addToScope(loader, new DexFileModule(f));
|
scope.addToScope(loader, DexFileModule.make(f));
|
||||||
} else {
|
} else {
|
||||||
File f = new File(paths[i]);
|
File f = new File(paths[i]);
|
||||||
if (f.isDirectory()) { // handle directory FIXME not working
|
if (f.isDirectory()) { // handle directory FIXME not working
|
||||||
|
|
|
@ -946,6 +946,17 @@ public final class ActivityEP {
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
|
public static final AndroidPossibleEntryPoint onSharedPreferenceChanged = new AndroidPossibleEntryPoint(AndroidComponent.ACTIVITY,
|
||||||
|
"onSharedPreferenceChanged",
|
||||||
|
ExecutionOrder.between( // TODO: Find a nice position
|
||||||
|
new AndroidEntryPoint.IExecutionOrder[] {
|
||||||
|
onStop
|
||||||
|
},
|
||||||
|
new AndroidEntryPoint.IExecutionOrder[] {
|
||||||
|
onRestart
|
||||||
|
}
|
||||||
|
));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is called before pausing
|
* This method is called before pausing
|
||||||
*/
|
*/
|
||||||
|
@ -1123,6 +1134,7 @@ public final class ActivityEP {
|
||||||
possibleEntryPoints.add(onUserLeaveHint);
|
possibleEntryPoints.add(onUserLeaveHint);
|
||||||
possibleEntryPoints.add(onWindowAttributesChanged);
|
possibleEntryPoints.add(onWindowAttributesChanged);
|
||||||
possibleEntryPoints.add(onWindowFocusChanged);
|
possibleEntryPoints.add(onWindowFocusChanged);
|
||||||
|
possibleEntryPoints.add(onSharedPreferenceChanged);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||||
<classpathentry kind="src" path="source"/>
|
<classpathentry kind="src" path="source"/>
|
||||||
<classpathentry kind="src" path="data"/>
|
<classpathentry kind="src" path="data"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
@ -72,7 +73,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||||
org.eclipse.jdt.core.compiler.source=1.6
|
org.eclipse.jdt.core.compiler.source=1.7
|
||||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||||
|
|
|
@ -19,7 +19,8 @@ Require-Bundle: com.ibm.wala.cast.java.test;bundle-version="1.0.0",
|
||||||
org.eclipse.jdt.core;bundle-version="3.4.2",
|
org.eclipse.jdt.core;bundle-version="3.4.2",
|
||||||
org.junit;bundle-version="4.0.0",
|
org.junit;bundle-version="4.0.0",
|
||||||
org.eclipse.core.runtime,
|
org.eclipse.core.runtime,
|
||||||
org.eclipse.pde.core;bundle-version="3.6.0",
|
org.eclipse.pde.core,
|
||||||
org.eclipse.platform;bundle-version="4.2.2"
|
org.eclipse.platform,
|
||||||
|
org.eclipse.jdt.launching.macosx;resolution:=optional
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||||
|
|
|
@ -3,3 +3,4 @@ source.. = source/,\
|
||||||
output.. = bin/
|
output.. = bin/
|
||||||
bin.includes = META-INF/,\
|
bin.includes = META-INF/,\
|
||||||
.
|
.
|
||||||
|
jre.compilation.profile = JavaSE-1.7
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -9,9 +9,9 @@
|
||||||
<version>1.3.4-SNAPSHOT</version>
|
<version>1.3.4-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
||||||
<artifactId>com.ibm.wala.ide.jdt.test</artifactId>
|
<artifactId>com.ibm.wala.ide.jdt.test</artifactId>
|
||||||
<packaging>eclipse-test-plugin</packaging>
|
<packaging>eclipse-test-plugin</packaging>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
<profile>
|
<profile>
|
||||||
<id>macosx</id>
|
<id>macosx</id>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||||
|
|
|
@ -16,8 +16,9 @@ Require-Bundle: org.eclipse.ui,
|
||||||
org.eclipse.core.resources,
|
org.eclipse.core.resources,
|
||||||
org.eclipse.jdt.core,
|
org.eclipse.jdt.core,
|
||||||
org.eclipse.pde.core,
|
org.eclipse.pde.core,
|
||||||
org.eclipse.ui.ide;bundle-version="3.8.2",
|
org.eclipse.ui.ide,
|
||||||
org.eclipse.jdt.launching;bundle-version="3.6.101"
|
org.eclipse.jdt.launching,
|
||||||
|
org.eclipse.jdt
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Export-Package: com.ibm.wala.cast.java.client,
|
Export-Package: com.ibm.wala.cast.java.client,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
@ -72,7 +73,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||||
org.eclipse.jdt.core.compiler.source=1.6
|
org.eclipse.jdt.core.compiler.source=1.7
|
||||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||||
|
|
|
@ -19,6 +19,6 @@ Require-Bundle: com.ibm.wala.core;bundle-version="1.1.3",
|
||||||
org.eclipse.pde.core;bundle-version="3.8.1",
|
org.eclipse.pde.core;bundle-version="3.8.1",
|
||||||
org.eclipse.equinox.common;bundle-version="3.6.100",
|
org.eclipse.equinox.common;bundle-version="3.6.100",
|
||||||
org.eclipse.core.runtime;bundle-version="3.8.0"
|
org.eclipse.core.runtime;bundle-version="3.8.0"
|
||||||
Bundle-ActivationPolicy: lazy
|
|
||||||
Bundle-Activator: com.ibm.wala.ide.jsdt.tests.Activator
|
Bundle-Activator: com.ibm.wala.ide.jsdt.tests.Activator
|
||||||
Export-Package: com.ibm.wala.ide.jsdt.tests
|
Export-Package: com.ibm.wala.ide.jsdt.tests
|
||||||
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<booleanAttribute key="includeOptional" value="true"/>
|
<booleanAttribute key="includeOptional" value="true"/>
|
||||||
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
|
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
<listEntry value="/com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/WLProjectWebScopeTest.java"/>
|
<listEntry value="/com.ibm.wala.worklight/src/com/ibm/wala/worklight/test/WLProjectWebScopeTest.java"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
|
@ -24,9 +24,9 @@
|
||||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.ide.jsdt.tests.WLProjectWebScopeTest"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.worklight.test.WLProjectWebScopeTest"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.ide.jsdt.tests"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.worklight"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -XX:MaxPermSize=512m -Xmx2048m -ea -Xdock:icon=../Resources/Eclipse.icns -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts"/>
|
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -XX:MaxPermSize=512m -Xmx2048m -ea -Xdock:icon=../Resources/Eclipse.icns -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts"/>
|
||||||
<stringAttribute key="pde.version" value="3.3"/>
|
<stringAttribute key="pde.version" value="3.3"/>
|
||||||
|
|
|
@ -27,4 +27,16 @@
|
||||||
</profile>
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<reuseForks>false</reuseForks>
|
||||||
|
<forkCount>1</forkCount>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -68,7 +68,7 @@ public abstract class AbstractJSProjectScopeTest {
|
||||||
return JavaScriptEclipseProjectPath.make(p, Collections.<Pair<String,Plugin>>emptySet());
|
return JavaScriptEclipseProjectPath.make(p, Collections.<Pair<String,Plugin>>emptySet());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("works for me on luna, but ignored for now to avoid breaking juno")
|
@Ignore("works for me on Eclipse Luna, but I cannot make it work with maven")
|
||||||
@Test
|
@Test
|
||||||
public void testParsing() throws IOException, CoreException {
|
public void testParsing() throws IOException, CoreException {
|
||||||
Set<ModuleEntry> mes = JsdtUtil.getJavaScriptCodeFromProject(project.projectName);
|
Set<ModuleEntry> mes = JsdtUtil.getJavaScriptCodeFromProject(project.projectName);
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||||
<classpathentry kind="src" path="source"/>
|
<classpathentry kind="src" path="source"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
@ -72,7 +73,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||||
org.eclipse.jdt.core.compiler.source=1.6
|
org.eclipse.jdt.core.compiler.source=1.7
|
||||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||||
|
|
|
@ -22,6 +22,7 @@ Require-Bundle: org.eclipse.core.runtime,
|
||||||
org.eclipse.pde.core;bundle-version="3.8.1"
|
org.eclipse.pde.core;bundle-version="3.8.1"
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
|
Import-Package: org.eclipse.wst.jsdt.internal.corext.callhierarchy
|
||||||
Export-Package: com.ibm.wala.cast.js.client,
|
Export-Package: com.ibm.wala.cast.js.client,
|
||||||
com.ibm.wala.ide.jsdt,
|
com.ibm.wala.ide.jsdt,
|
||||||
com.ibm.wala.ide.util
|
com.ibm.wala.ide.util
|
||||||
|
|
|
@ -54,6 +54,7 @@ import com.ibm.wala.ide.util.HeadlessUtil.EclipseCompiler;
|
||||||
import com.ibm.wala.ide.util.HeadlessUtil.Parser;
|
import com.ibm.wala.ide.util.HeadlessUtil.Parser;
|
||||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||||
import com.ibm.wala.util.collections.HashSetFactory;
|
import com.ibm.wala.util.collections.HashSetFactory;
|
||||||
|
import com.ibm.wala.util.collections.Pair;
|
||||||
import com.ibm.wala.util.functions.Function;
|
import com.ibm.wala.util.functions.Function;
|
||||||
import com.ibm.wala.util.graph.Graph;
|
import com.ibm.wala.util.graph.Graph;
|
||||||
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;
|
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;
|
||||||
|
@ -76,7 +77,7 @@ public class JsdtUtil {
|
||||||
public static Set<ModuleEntry> getJavaScriptCodeFromProject(String project) throws IOException, CoreException {
|
public static Set<ModuleEntry> getJavaScriptCodeFromProject(String project) throws IOException, CoreException {
|
||||||
IJavaScriptProject p = JavaScriptHeadlessUtil.getJavaScriptProjectFromWorkspace(project);
|
IJavaScriptProject p = JavaScriptHeadlessUtil.getJavaScriptProjectFromWorkspace(project);
|
||||||
JSCallGraphUtil.setTranslatorFactory(new CAstRhinoTranslatorFactory());
|
JSCallGraphUtil.setTranslatorFactory(new CAstRhinoTranslatorFactory());
|
||||||
AnalysisScope s = JavaScriptEclipseProjectPath.make(p, Collections.EMPTY_SET).toAnalysisScope(new CAstAnalysisScope(JSCallGraphUtil.makeLoaders(), Collections.singleton(JavaScriptLoader.JS)));
|
AnalysisScope s = JavaScriptEclipseProjectPath.make(p, Collections.<Pair<String,Plugin>>emptySet()).toAnalysisScope(new CAstAnalysisScope(JSCallGraphUtil.makeLoaders(), Collections.singleton(JavaScriptLoader.JS)));
|
||||||
|
|
||||||
List<Module> modules = s.getModules(JavaScriptTypes.jsLoader);
|
List<Module> modules = s.getModules(JavaScriptTypes.jsLoader);
|
||||||
Set<ModuleEntry> mes = HashSetFactory.make();
|
Set<ModuleEntry> mes = HashSetFactory.make();
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
|
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.examples.drivers.SWTCallGraph"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.examples.drivers.SWTCallGraph"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-appJar ${resource_loc:/com.ibm.wala.core.testdata/JLex.jar}"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-appJar ${resource_loc:/com.ibm.wala.core.testdata/JLex.jar}"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.ide.tests"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.ide.tests"/>
|
||||||
|
|
|
@ -15,7 +15,9 @@ Require-Bundle: com.ibm.wala.core,
|
||||||
org.eclipse.core.resources,
|
org.eclipse.core.resources,
|
||||||
org.eclipse.core.runtime,
|
org.eclipse.core.runtime,
|
||||||
org.eclipse.jdt.core,
|
org.eclipse.jdt.core,
|
||||||
org.eclipse.ui.ide;bundle-version="3.8.2"
|
org.eclipse.ui.ide,
|
||||||
|
org.eclipse.jdt,
|
||||||
|
org.eclipse.jdt.launching
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||||
Export-Package: com.ibm.wala.ide.classloader,
|
Export-Package: com.ibm.wala.ide.classloader,
|
||||||
|
|
|
@ -201,6 +201,7 @@ public abstract class EclipseProjectPath<E, P> {
|
||||||
if (!model.isInSync() || model.isDisposed()) {
|
if (!model.isInSync() || model.isDisposed()) {
|
||||||
model.load();
|
model.load();
|
||||||
}
|
}
|
||||||
|
|
||||||
BundleDescription bd = model.getBundleDescription();
|
BundleDescription bd = model.getBundleDescription();
|
||||||
|
|
||||||
if (bd == null) {
|
if (bd == null) {
|
||||||
|
|
|
@ -97,7 +97,7 @@ public class AnnotationsReader extends AttributeReader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return val.toString();
|
return String.valueOf(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package com.ibm.wala.util.functions;
|
package com.ibm.wala.util.functions;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public interface Function<X,Y> {
|
public interface Function<X,Y> {
|
||||||
|
|
|
@ -224,6 +224,7 @@ public final class BitVectorIntSet implements MutableIntSet {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasNext() {
|
public boolean hasNext() {
|
||||||
|
assert populationCount == bitVector.populationCount();
|
||||||
return count < populationCount;
|
return count < populationCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
436
pom.xml
436
pom.xml
|
@ -1,218 +1,230 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project
|
<project
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.ibm.wala</groupId>
|
<groupId>com.ibm.wala</groupId>
|
||||||
<artifactId>WALA</artifactId>
|
<artifactId>WALA</artifactId>
|
||||||
<version>1.3.4-SNAPSHOT</version>
|
<version>1.3.4-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<properties>
|
<properties>
|
||||||
<project-version>1.3.4-SNAPSHOT</project-version>
|
<project-version>1.3.4-SNAPSHOT</project-version>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<build-alias>b000</build-alias>
|
<build-alias>b000</build-alias>
|
||||||
<tycho-version>0.19.0</tycho-version>
|
<tycho-version>0.19.0</tycho-version>
|
||||||
<tycho.scmUrl>scm:git:ssh://github.com:wala/WALA.git</tycho.scmUrl>
|
<tycho.scmUrl>scm:git:ssh://github.com:wala/WALA.git</tycho.scmUrl>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<module>targets</module>
|
||||||
|
|
||||||
<modules>
|
<module>com.ibm.wala-feature</module>
|
||||||
<module>targets</module>
|
<module>com.ibm.wala.core</module>
|
||||||
|
<module>com.ibm.wala.shrike</module>
|
||||||
|
<module>com.ibm.wala.util</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.core.testdata</module>
|
||||||
|
<module>com.ibm.wala.core.tests</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.cast</module>
|
||||||
|
<module>com.ibm.wala.cast.test</module>
|
||||||
|
<module>com.ibm.wala.cast.java</module>
|
||||||
|
<module>com.ibm.wala.cast.java.test</module>
|
||||||
|
<module>com.ibm.wala.cast.java.test.data</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.ide-feature</module>
|
||||||
|
<module>com.ibm.wala.ide</module>
|
||||||
|
<module>com.ibm.wala.ide.tests</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.ide.jdt</module>
|
||||||
|
<module>com.ibm.wala.ide.jdt.test</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.cast.js</module>
|
||||||
|
<module>com.ibm.wala.cast.js.html.nu_validator</module>
|
||||||
|
<module>com.ibm.wala.cast.js.test</module>
|
||||||
|
<module>com.ibm.wala.cast.js.test.data</module>
|
||||||
|
<module>com.ibm.wala.cast.js.rhino</module>
|
||||||
|
<module>com.ibm.wala.cast.js.rhino.test</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.ide.jsdt</module>
|
||||||
|
<module>com.ibm.wala.ide.jsdt.tests</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.dalvik</module>
|
||||||
|
<module>com.ibm.wala.dalvik.test</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.scandroid</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala.cast.java.polyglot</module>
|
||||||
|
<module>com.ibm.wala.cast.java.polyglot.test</module>
|
||||||
|
|
||||||
|
<module>com.ibm.wala-repository</module>
|
||||||
|
|
||||||
|
</modules>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-maven-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>target-platform-configuration</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<configuration>
|
||||||
|
<target>
|
||||||
|
<artifact>
|
||||||
|
<groupId>com.ibm.wala.target</groupId>
|
||||||
|
<artifactId>e44</artifactId>
|
||||||
|
<version>${project-version}</version>
|
||||||
|
</artifact>
|
||||||
|
</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-compiler-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<configuration>
|
||||||
|
<source>1.7</source>
|
||||||
|
<target>1.7</target>
|
||||||
|
<compilerArgument>-err:-forbidden</compilerArgument>
|
||||||
|
<compilerArguments>
|
||||||
|
<properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
|
||||||
|
</compilerArguments>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-source-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>attach-source</id>
|
||||||
|
<phase>process-classes</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>plugin-source</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-packaging-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<configuration>
|
||||||
|
<format>'v'yyyyMMdd-HHmm'-${build-alias}'</format>
|
||||||
|
<archiveSite>false</archiveSite>
|
||||||
|
<sourceReferences>
|
||||||
|
<generate>true</generate>
|
||||||
|
</sourceReferences>
|
||||||
|
</configuration>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.tycho.extras</groupId>
|
||||||
|
<artifactId>tycho-sourceref-jgit</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-surefire-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<configuration>
|
||||||
|
|
||||||
<module>com.ibm.wala-feature</module>
|
<dependencies>
|
||||||
<module>com.ibm.wala.core</module>
|
<dependency>
|
||||||
<module>com.ibm.wala.shrike</module>
|
<type>eclipse-plugin</type>
|
||||||
<module>com.ibm.wala.util</module>
|
<artifactId>org.eclipse.osgi.compatibility.state</artifactId>
|
||||||
|
<version>0.0.0</version>
|
||||||
<module>com.ibm.wala.core.testdata</module>
|
</dependency>
|
||||||
<module>com.ibm.wala.core.tests</module>
|
</dependencies>
|
||||||
|
|
||||||
<module>com.ibm.wala.dalvik</module>
|
|
||||||
<module>com.ibm.wala.dalvik.test</module>
|
|
||||||
<module>com.ibm.wala.scandroid</module>
|
|
||||||
|
|
||||||
<module>com.ibm.wala.cast</module>
|
|
||||||
<module>com.ibm.wala.cast.test</module>
|
|
||||||
<module>com.ibm.wala.cast.java</module>
|
|
||||||
<module>com.ibm.wala.cast.java.test</module>
|
|
||||||
<module>com.ibm.wala.cast.java.test.data</module>
|
|
||||||
<module>com.ibm.wala.cast.java.polyglot</module>
|
|
||||||
<module>com.ibm.wala.cast.java.polyglot.test</module>
|
|
||||||
<module>com.ibm.wala.cast.js</module>
|
|
||||||
<module>com.ibm.wala.cast.js.html.nu_validator</module>
|
|
||||||
<module>com.ibm.wala.cast.js.test</module>
|
|
||||||
<module>com.ibm.wala.cast.js.test.data</module>
|
|
||||||
<module>com.ibm.wala.cast.js.rhino</module>
|
|
||||||
<module>com.ibm.wala.cast.js.rhino.test</module>
|
|
||||||
|
|
||||||
<module>com.ibm.wala.ide-feature</module>
|
|
||||||
<module>com.ibm.wala.ide</module>
|
|
||||||
<module>com.ibm.wala.ide.tests</module>
|
|
||||||
<module>com.ibm.wala.ide.jdt</module>
|
|
||||||
<module>com.ibm.wala.ide.jsdt</module>
|
|
||||||
<module>com.ibm.wala.ide.jsdt.tests</module>
|
|
||||||
<module>com.ibm.wala.ide.jdt.test</module>
|
|
||||||
|
|
||||||
<module>com.ibm.wala-repository</module>
|
|
||||||
|
|
||||||
|
|
||||||
</modules>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>tycho-maven-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<extensions>true</extensions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>target-platform-configuration</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<configuration>
|
|
||||||
<target>
|
|
||||||
<artifact>
|
|
||||||
<groupId>com.ibm.wala.target</groupId>
|
|
||||||
<artifactId>e42</artifactId>
|
|
||||||
<version>${project-version}</version>
|
|
||||||
</artifact>
|
|
||||||
</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>tycho-compiler-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<configuration>
|
|
||||||
<source>1.7</source>
|
|
||||||
<target>1.7</target>
|
|
||||||
<compilerArgument>-err:-forbidden</compilerArgument>
|
|
||||||
<compilerArguments>
|
|
||||||
<properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
|
|
||||||
</compilerArguments>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>tycho-source-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>attach-source</id>
|
|
||||||
<phase>process-classes</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>plugin-source</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>tycho-packaging-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<configuration>
|
|
||||||
<format>'v'yyyyMMdd-HHmm'-${build-alias}'</format>
|
|
||||||
<archiveSite>false</archiveSite>
|
|
||||||
<sourceReferences>
|
|
||||||
<generate>true</generate>
|
|
||||||
</sourceReferences>
|
|
||||||
</configuration>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.eclipse.tycho.extras</groupId>
|
|
||||||
<artifactId>tycho-sourceref-jgit</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>tycho-surefire-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<configuration>
|
|
||||||
<useuiharness>false</useuiharness>
|
|
||||||
<useuithread>false</useuithread>
|
|
||||||
<providerHint>junit47</providerHint>
|
|
||||||
<argLine>${tycho.test.jvmArgs}</argLine>
|
|
||||||
<includes>
|
|
||||||
<include>**/Test*.java</include>
|
|
||||||
<include>**/*Test.java</include>
|
|
||||||
<include>**/*TestCase.java</include>
|
|
||||||
<include>**/*Tests.java</include>
|
|
||||||
</includes>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<!-- The tycho-source-feature-plugin needs to be place before the tycho-p2-plugin, as both plugins' goals bind to the same phase -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho.extras</groupId>
|
|
||||||
<artifactId>tycho-source-feature-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>generate-source-feature</id>
|
|
||||||
<goals>
|
|
||||||
<goal>source-feature</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>tycho-p2-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<!-- Don't attach (default) metadata before the "generate-source-feature" execution. -->
|
|
||||||
<id>default-p2-metadata-default</id>
|
|
||||||
<configuration>
|
|
||||||
<attachP2Metadata>false</attachP2Metadata>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
|
||||||
<!-- Do attach metadata after the "generate-source-feature" execution. -->
|
|
||||||
<id>attach-p2-metadata</id>
|
|
||||||
<phase>package</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>p2-metadata</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>tycho-p2-director-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.tycho</groupId>
|
|
||||||
<artifactId>tycho-p2-repository-plugin</artifactId>
|
|
||||||
<version>${tycho-version}</version>
|
|
||||||
<configuration>
|
|
||||||
<includeAllDependencies>false</includeAllDependencies>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>com.googlecode.maven-download-plugin</groupId>
|
|
||||||
<artifactId>maven-download-plugin</artifactId>
|
|
||||||
<version>1.0.0</version>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<version>2.14.1</version>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
<pluginRepositories>
|
|
||||||
<pluginRepository>
|
|
||||||
<id>sonatype-public-repository</id>
|
|
||||||
<url>https://oss.sonatype.org/content/groups/public</url>
|
|
||||||
<snapshots>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</snapshots>
|
|
||||||
<releases>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</releases>
|
|
||||||
</pluginRepository>
|
|
||||||
</pluginRepositories>
|
|
||||||
|
|
||||||
|
<useuiharness>false</useuiharness>
|
||||||
|
<useuithread>false</useuithread>
|
||||||
|
<providerHint>junit47</providerHint>
|
||||||
|
<argLine>${tycho.test.jvmArgs}</argLine>
|
||||||
|
<includes>
|
||||||
|
<include>**/Test*.java</include>
|
||||||
|
<include>**/*Test.java</include>
|
||||||
|
<include>**/*TestCase.java</include>
|
||||||
|
<include>**/*Tests.java</include>
|
||||||
|
</includes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<!-- The tycho-source-feature-plugin needs to be place before the tycho-p2-plugin, as both plugins' goals bind to the same phase -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho.extras</groupId>
|
||||||
|
<artifactId>tycho-source-feature-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>generate-source-feature</id>
|
||||||
|
<goals>
|
||||||
|
<goal>source-feature</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-p2-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<!-- Don't attach (default) metadata before the "generate-source-feature" execution. -->
|
||||||
|
<id>default-p2-metadata-default</id>
|
||||||
|
<configuration>
|
||||||
|
<attachP2Metadata>false</attachP2Metadata>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<!-- Do attach metadata after the "generate-source-feature" execution. -->
|
||||||
|
<id>attach-p2-metadata</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>p2-metadata</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-p2-director-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-p2-repository-plugin</artifactId>
|
||||||
|
<version>${tycho-version}</version>
|
||||||
|
<configuration>
|
||||||
|
<includeAllDependencies>true</includeAllDependencies>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.googlecode.maven-download-plugin</groupId>
|
||||||
|
<artifactId>maven-download-plugin</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>2.14.1</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<pluginRepositories>
|
||||||
|
<pluginRepository>
|
||||||
|
<id>sonatype-public-repository</id>
|
||||||
|
<url>https://oss.sonatype.org/content/groups/public</url>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</snapshots>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
</pluginRepository>
|
||||||
|
</pluginRepositories>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -1,30 +1,16 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<?pde version="3.8"?><target name="WALA Eclipse Luna Target Platform" sequenceNumber="130">
|
<?pde version="3.8"?><target name="WALA Eclipse Luna Target Platform" sequenceNumber="130">
|
||||||
<locations>
|
<locations>
|
||||||
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
|
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
|
||||||
<unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.ecf.core.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.ecf.core.ssl.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.ecf.filetransfer.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.ecf.filetransfer.httpclient4.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.ecf.filetransfer.ssl.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.emf.common.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.emf.ecore.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
|
<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
|
||||||
<unit id="org.eclipse.equinox.p2.core.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.equinox.p2.extras.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.equinox.p2.rcp.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.equinox.p2.user.ui.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.help.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.jdt.source.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.platform.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.rcp.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.wst.jsdt.feature.feature.group" version="0.0.0"/>
|
|
||||||
<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="0.0.0"/>
|
<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="0.0.0"/>
|
||||||
|
<unit id="org.eclipse.wst.jsdt.feature.feature.group" version="0.0.0"/>
|
||||||
|
<unit id="org.eclipse.wst.jsdt.ui" version="0.0.0"/>
|
||||||
|
<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
|
||||||
|
<unit id="org.eclipse.jdt.source.feature.group" version="0.0.0"/>
|
||||||
|
<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
|
||||||
|
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||||
|
<unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0"/>
|
||||||
<repository location="http://download.eclipse.org/releases/luna"/>
|
<repository location="http://download.eclipse.org/releases/luna"/>
|
||||||
</location>
|
</location>
|
||||||
</locations>
|
</locations>
|
||||||
|
|
Loading…
Reference in New Issue