Commit graph

2831 commits

Author SHA1 Message Date
Jason P. Leasure d404e3f8dd show bundle paths with variable substituted 2020-07-28 16:56:08 -04:00
Jason P. Leasure a09861f942 lower Felix logging verbosity 2020-07-28 16:56:08 -04:00
Jason P. Leasure 0af17e4b08 help for Ghidra Bundles, update scripting help, @imports->@importpackage 2020-07-28 16:56:08 -04:00
Jason P. Leasure 8fc9240eda remove org.apache.felix.main dependency 2020-07-28 16:56:08 -04:00
Jason P. Leasure 4911e0814a script info manager should only "find" info it has 2020-07-28 16:56:08 -04:00
Jason P. Leasure 04a16aa0f4 add more time to script tests 2020-07-28 16:56:08 -04:00
Jason P. Leasure d79b193d20 move weird static call into GhidraScriptAnalyzer class 2020-07-28 16:56:08 -04:00
Jason P. Leasure 5f11c9cf7d update python & headless tests to manage GhidraScriptUtil resource 2020-07-28 16:56:08 -04:00
Jason P. Leasure 7ee2467016 avoid calling GhidraScriptUtils.getScriptSourceDirectories
- when called from the GUI, the bundle host manages paths
- when used to find a script by name, use findScriptByName
2020-07-28 16:56:08 -04:00
Jason P. Leasure 2b49816c6c factor GhidraScriptInfoManager out of GhidraScriptUtil
- move bundlehost to ghidrascriptmgrplugin
2020-07-28 16:56:08 -04:00
Jason P. Leasure a26ce496ef cleanup names, remove pointless code, reorder/deprecate 2020-07-28 16:56:08 -04:00
Jason P. Leasure 05dc95634f cleanup headless init for GhidraScriptUtil 2020-07-28 16:56:08 -04:00
Jason P. Leasure 11fe097e8e fix bundle status listing errors when adding two bundle status components 2020-07-28 16:56:08 -04:00
Jason P. Leasure a654060fbe make set-activation more like individual activation
- build unresolved bundles as the last step
- mark bundle status as busy
- clean now removes build errors
2020-07-28 16:56:08 -04:00
Jason P. Leasure ec4cad2237 add bundlehost tests.. and some fixes
- source manifests are now copied properly
- don't use a task to stop framework
2020-07-28 16:56:08 -04:00
Jason P. Leasure 464a6be6de fix loaded counter for testing 2020-07-28 16:56:08 -04:00
Jason P. Leasure 18163aeb58 avoid multiple GhidraScriptUtil.initialize calls w/ multiple tools 2020-07-28 16:56:08 -04:00
Jason P. Leasure 3cb0555453 check for existence of bundle paths on restoreState 2020-07-28 16:56:08 -04:00
Jason P. Leasure ea5eae8395 fix inclusion of broken imports in compile run 2020-07-28 16:56:08 -04:00
Jason P. Leasure 6ed7134b4c add missing IP headers 2020-07-28 16:56:08 -04:00
Jason P. Leasure c9f477264d stop asking a status model for stuff 2020-07-28 16:56:08 -04:00
Jason P. Leasure 49e3d6dcdc tease out GhidraScriptUtil state, clarify headless and headed cases
- GhidraScriptUtil how has (static) initialize & dispose
  - initialize is either through (headed/GUI) GhidraScriptMgrPlugin or
    directly (headless)
- BundleHost
  - now owns bundle paths (script dirs)
  - save and restore to SaveState for use by GUI
  - no static instances
  - GhidraScriptUtil BundleHost coincides with GUI's when both are used
  - generates events
  - conservative use of auto-vivification
- BundleStatusCompoentProvider / PathManager
  - better split between GUI & model
  - subscribes to GUI's BundleHost for events
  - provider registers for generated events, controls BundleHost
2020-07-28 16:56:07 -04:00
Jason P. Leasure 2c27ca1376 consolidate bundle management into bundlehost
- change ownership of script directories to singleton bundlehost
- start moving BundleStatus into GUI only mode
2020-07-28 16:56:07 -04:00
Jason P. Leasure 1735a11a76 do not auto-create ScriptInfo objects, fix static allocatins in testing 2020-07-28 16:56:07 -04:00
Jason P. Leasure 6268ab9d3e move static bundle vars to BundleHost 2020-07-28 16:56:07 -04:00
Jason P. Leasure 0f74dcb8be cleanup, fix tests where script deleted before getScriptInfo
- mark deleted scripts as having compile errors
2020-07-28 16:56:07 -04:00
Jason P. Leasure 5c28ab536c add jarbundle, add toolbar actions, fix view versus row indexing
- move bundle compiler into source bundle
- activate action attempts to activate in topological order
- modified suppression of RowObjectSelectionManager.repair
- add animation for clean operation
2020-07-28 16:56:07 -04:00
Jason P. Leasure 0383926fc3 replace +- buttons in bundlestatus gui with toolbar actions
- synchronize summary, compilerErrors
- check requirements before activation for class files that won't load
2020-07-28 16:56:07 -04:00
Jason P. Leasure 89e0e617b2 speed up bundle status load, fix empty source dir handling 2020-07-28 16:56:07 -04:00
Jason P. Leasure 15f46b7fae a status is not a path 2020-07-28 16:56:07 -04:00
Jason P. Leasure 431d7ac752 introduce GhidraBundle, cleanup packages, rename path->status 2020-07-28 16:56:07 -04:00
Jason P. Leasure 7873bb32fa improve OSGi error messages
- move serialization and bundleevents from provider into
  bundlestatusmodel
- add summary field to bundle status
- add more precise tracking of requirements
- make status updates asynchronous via OSGiListener
2020-07-28 16:56:07 -04:00
Jason P. Leasure 8d55571172 connect OSGi framework to bundlestatusprovider 2020-07-28 16:56:07 -04:00
Jason P. Leasure f39d55cca1 start connecting OSGi to bundlestatusmanager
- minimize access to BundleHost instance (JavaScriptProvider is still bad)
- BundlePath
  - restrict construction to osgi package
  - remove "editable" attribute and fix incorrect reference
  - remove references in GhidraScriptUtil
    - BundlePath attribute choice came down only to system or user
    - user filtering on "enabled" were redundant
- move compilation from JavaScriptProvider to BundheHost
2020-07-28 16:56:07 -04:00
Jason P. Leasure 36f4a219d9 headers for new files 2020-07-28 16:56:07 -04:00
Jason P. Leasure d8610b00be improve model/view split in bundle status, more nomenclature fixes 2020-07-28 16:56:07 -04:00
Jason P. Leasure ad897f263c rename variables, move bundlehost instance, clean dead fileinstaller code 2020-07-28 16:56:07 -04:00
Jason P. Leasure 2e05da019f move bundle path manager to core as a ComponentProvider for bundle status
- PathManager was most of a ComponentProvider anyway, so this isn't a
  huge change
- this makes bundle status available w/out the GhidraScript component
- it's no longer modal, e.g. script directory list updates are immediate
2020-07-28 16:56:07 -04:00
Jason P. Leasure c660a12ab3 clarify and discourage access to compiled scripts 2020-07-28 16:56:07 -04:00
Jason P. Leasure c106e0e02b filter bundles for source directories when asked for script dirs 2020-07-28 16:56:07 -04:00
Jason P. Leasure 91f09dd0c5 remove now impossible script name collision test
- in testing, TestChangeProgramScript isn't compiled, otherwise fake files
  were unneccessary
2020-07-28 16:56:07 -04:00
Jason P. Leasure 092d716e96 update tests
- note: timeout increased by 33% in waitForTaskEnd because the entire
  script directory needs to compiled now
- complete recursive wipe of binary artifacts added to @After action
2020-07-28 16:56:07 -04:00
Jason P. Leasure 931a9e8230 add bundlepathmanager for scripting
- move bundle host into GhidraScriptMgrPlugin
- remove access to script class files and bin directory
- remove JavaScriptClassLoader
- add loadClass to JavaScriptProvider to load non-GhidraScript classes
2020-07-28 16:56:07 -04:00
Jason P. Leasure b2b93bd20d deprecate USER_SCRIPTS_BIN_DIR 2020-07-28 16:56:07 -04:00
Jason P. Leasure 73665bba2a don't compile script in event thread 2020-07-28 16:56:07 -04:00
Jason P. Leasure aa85554abd scripting dirs now have distinct bin dirs, update test 2020-07-28 16:56:07 -04:00
Jason P. Leasure b569c79baf script tests should wipe the directory after each test 2020-07-28 16:56:07 -04:00
Jason P. Leasure 4c655c2e92 move SourceBundleInfo out of BundleHost 2020-07-28 16:56:07 -04:00
Jason P. Leasure 44aea2a48a add exceptions and handlers for osgi + scripting 2020-07-28 16:56:07 -04:00
Jason P. Leasure 41ee548b03 move more logic out of JavaScriptProvider, always use all @imports 2020-07-28 16:56:07 -04:00