From a480cc65e3114e9ecacf807bb494e2485f628508 Mon Sep 17 00:00:00 2001 From: peter mitrano Date: Wed, 30 Sep 2015 19:22:18 -0400 Subject: [PATCH] Removed simluation eclipse plugin Plugins will be delivered through a seperate installer models will be delivered through the online gazebo model repository Change-Id: Id9df358837460ae3956657327dbfeb6414b033c2 Conflicts: eclipse-plugins/edu.wpi.first.wpilib.plugins.updatesite/site.xml --- .../build.properties | 1 - .../build.properties | 1 - .../feature.xml | 26 --- .../feature.xml | 59 ------- .../pom.xml | 16 -- .../.gitignore | 2 - .../META-INF/MANIFEST.MF | 13 -- .../README.md | 10 -- .../build.properties | 8 - .../plugin.xml | 10 -- .../pom.xml | 158 ------------------ .../resources/configuration.properties | 2 - .../simulation/WPILibSimulationPlugin.java | 104 ------------ .../installer/SimulationInstaller.java | 89 ---------- .../preferences/PreferenceConstants.java | 10 -- .../preferences/PreferenceInitializer.java | 25 --- .../site.xml | 3 - eclipse-plugins/pom.xml | 2 - 18 files changed, 539 deletions(-) delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/build.properties delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/edu.wpi.first.wpilib.plugins.simulation.feature/build.properties delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/edu.wpi.first.wpilib.plugins.simulation.feature/feature.xml delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/feature.xml delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/pom.xml delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/.gitignore delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/META-INF/MANIFEST.MF delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/README.md delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/build.properties delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/plugin.xml delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/pom.xml delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/resources/configuration.properties delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/WPILibSimulationPlugin.java delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/installer/SimulationInstaller.java delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/preferences/PreferenceConstants.java delete mode 100644 eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/preferences/PreferenceInitializer.java diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/build.properties b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/build.properties deleted file mode 100644 index 64f93a9f0b..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/build.properties +++ /dev/null @@ -1 +0,0 @@ -bin.includes = feature.xml diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/edu.wpi.first.wpilib.plugins.simulation.feature/build.properties b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/edu.wpi.first.wpilib.plugins.simulation.feature/build.properties deleted file mode 100644 index 64f93a9f0b..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/edu.wpi.first.wpilib.plugins.simulation.feature/build.properties +++ /dev/null @@ -1 +0,0 @@ -bin.includes = feature.xml diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/edu.wpi.first.wpilib.plugins.simulation.feature/feature.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/edu.wpi.first.wpilib.plugins.simulation.feature/feature.xml deleted file mode 100644 index 5fbee73367..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/edu.wpi.first.wpilib.plugins.simulation.feature/feature.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - [Enter Feature Description here.] - - - - [Enter Copyright Description here.] - - - - [Enter License Description here.] - - - - - diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/feature.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/feature.xml deleted file mode 100644 index c022e1df0e..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/feature.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - FRC Robot Simulation Program Development Environment. - - - - * Copyright (c) 2015 FIRST and WPI -* All rights reserved. - - - - * Copyright (c) 2015 FIRST and WPI -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or -* without modification, are permitted provided that the following -* conditions are met: -* Redistributions of source code must retain the above -* copyright notice, this list of conditions and the following -* disclaimer. Redistributions in binary form must reproduce the -* above copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. Neither the name of the FIRST nor the -* names of its contributors may be used to endorse or promote -* products derived from this software without specific prior -* written permission. -* -* THIS SOFTWARE IS PROVIDED BY FIRST AND CONTRIBUTORS``AS IS'' -* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY NONINFRINGEMENT -* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -* EVENT SHALL FIRST OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - - - - - diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/pom.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/pom.xml deleted file mode 100644 index fadc4bcfc3..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation.feature/pom.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - 4.0.0 - edu.wpi.first.wpilib.plugins.simulation.feature - eclipse-feature - - - edu.wpi.first.wpilib.plugins - edu.wpi.first.wpilib.plugins - 0.1.0.qualifier - .. - - - diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/.gitignore b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/.gitignore deleted file mode 100644 index 18a93a3940..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -#ignore libraries. They will be copied from frc_gazebo_plugins/build/plugins -*.so diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/META-INF/MANIFEST.MF b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/META-INF/MANIFEST.MF deleted file mode 100644 index af2d405d39..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/META-INF/MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: WPILib_Robot_Simulation -Bundle-SymbolicName: edu.wpi.first.wpilib.plugins.simulation;singleton:=true -Bundle-Version: 0.1.0.qualifier -Bundle-Activator: edu.wpi.first.wpilib.plugins.simulation.WPILibSimulationPlugin -Require-Bundle: org.eclipse.core.runtime, - edu.wpi.first.wpilib.plugins.core;bundle-version="0.1.0", - org.eclipse.jface;bundle-version="3.10.2", - org.eclipse.ui;bundle-version="3.106.1" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Bundle-ActivationPolicy: lazy -Bundle-Vendor: Worcester Polytechnic Institute diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/README.md b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/README.md deleted file mode 100644 index ad5c5cd3ce..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/README.md +++ /dev/null @@ -1,10 +0,0 @@ -#Notes on the simulation eclipse plugin -Should download models when installed - -build with the rest of the eclipse plugins using: - - //if you're in the eclipse-plugins directory - mvn package - - //otherwise in the base dir - ./gradlew eclipsePlugins //no colons here! diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/build.properties b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/build.properties deleted file mode 100644 index e1d4e2a14e..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/build.properties +++ /dev/null @@ -1,8 +0,0 @@ -source.. = src/main/java/ -output.. = target/classes/ -bin.includes = META-INF/,\ - .,\ - plugin.xml,\ - resources/ - src.include = src/,\ - resources/ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/plugin.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/plugin.xml deleted file mode 100644 index f967023aa9..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/plugin.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/pom.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/pom.xml deleted file mode 100644 index 8c98b4f6ff..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/pom.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - 4.0.0 - edu.wpi.first.wpilib.plugins.simulation - eclipse-plugin - - - edu.wpi.first.wpilib.plugins - edu.wpi.first.wpilib.plugins - 0.1.0.qualifier - .. - - - - DEVELOPMENT - ${project.build.directory}/simulation-zip - - - - - WPILib Maven Repository - http://first.wpi.edu/FRC/roborio/maven/ - - - - - - - . - - resources/configuration.properties - - true - - - - - maven-resources-plugin - 2.6 - - - copy-plugins-to-simulation-zip - generate-sources - - copy-resources - - - ${simulation-zip} - - - ../../build/simulation/frc_gazebo_plugins/ - - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - - - set-version-info - - run - - process-sources - - - - - - - - - - - true - - - - - - generate-simulation-zip - compile - - run - - - - - - - - - - - - - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - - org.apache.maven.plugins - - - maven-dependency-plugin - - [2.8,) - - copy - - - - - - - - - - - - - - - - - - - - edu.wpi.first.wpilib - sfx - zip - LATEST - - - diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/resources/configuration.properties b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/resources/configuration.properties deleted file mode 100644 index cbfaca2ede..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/resources/configuration.properties +++ /dev/null @@ -1,2 +0,0 @@ -timestamp=${timestamp} -version=${version} diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/WPILibSimulationPlugin.java b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/WPILibSimulationPlugin.java deleted file mode 100644 index 779f98f50c..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/WPILibSimulationPlugin.java +++ /dev/null @@ -1,104 +0,0 @@ -package edu.wpi.first.wpilib.plugins.simulation; - -/** - * @author peter mitrano - */ - -import java.io.File; -import java.util.Properties; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.Status; -import org.eclipse.ui.IStartup; -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.osgi.framework.BundleContext; - -import edu.wpi.first.wpilib.plugins.core.WPILibCore; -import edu.wpi.first.wpilib.plugins.core.ant.AntPropertiesParser; -import edu.wpi.first.wpilib.plugins.simulation.installer.SimulationInstaller; - -public class WPILibSimulationPlugin extends AbstractUIPlugin implements IStartup{ - - // The plug-in ID - public static final String PLUGIN_ID = "WPILib_Java_Robot_Development"; //$NON-NLS-1$ - - // The shared instance - private static WPILibSimulationPlugin plugin; - - /* - * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) - */ - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; - } - - /* - * (non-Javadoc) - * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) - */ - public void stop(BundleContext bundleContext) throws Exception { - plugin = null; - super.stop(bundleContext); - } - - /** - * Returns the shared instance - * - * @return the shared instance - */ - public static WPILibSimulationPlugin getDefault() { - return plugin; - } - - public String getCurrentVersion() { - try { - Properties props = new AntPropertiesParser( - WPILibSimulationPlugin.class.getResourceAsStream("/resources/configuration.properties")). - getProperties(); - if (props.getProperty("version").startsWith("$")) { - return "DEVELOPMENT"; - } else { - return props.getProperty("version"); - } - } catch (CoreException e) { - WPILibSimulationPlugin.logError("Error getting properties.", e); - return "DEVELOPMENT"; - } - } - - public String getSimulationDir() { - return WPILibCore.getDefault().getWPILibBaseDir() - + File.separator + "simulation"; - } - - public String getPluginsDir() { - return getSimulationDir() + File.separator + "plugins"; - } - - public static void logInfo(String msg) { - getDefault().getLog().log(new Status(Status.INFO, PLUGIN_ID, Status.OK, msg, null)); - } - - private static void logError(String msg, CoreException e) { - getDefault().getLog().log(new Status(Status.ERROR, PLUGIN_ID, Status.OK, msg, e)); - } - - public String getJavaPath() { - return WPILibCore.getDefault().getWPILibBaseDir() - + File.separator + "java" + File.separator + "current"; - } - - @Override - public void earlyStartup() { - SimulationInstaller simulationInstaller = new SimulationInstaller(getCurrentVersion()); - //downloads and copies the models from collabnet and unzips to - //wpilib/simulation/models and wpilib/simulation/worlds - simulationInstaller.installModels(); - //extracts and copies the gazebo plugins from simulation.zip to wpilib/simulation/plugins - simulationInstaller.installPlugins(); - - } - -} diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/installer/SimulationInstaller.java b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/installer/SimulationInstaller.java deleted file mode 100644 index 2f7c511057..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/installer/SimulationInstaller.java +++ /dev/null @@ -1,89 +0,0 @@ -package edu.wpi.first.wpilib.plugins.simulation.installer; - -/** - * @author peter mitrano - */ - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.nio.file.Files; -import java.nio.file.Paths; - -import javax.net.ssl.HttpsURLConnection; - -import org.eclipse.jface.preference.IPreferenceStore; -import org.osgi.service.log.LogEntry; - -import edu.wpi.first.wpilib.plugins.core.installer.AbstractInstaller; -import edu.wpi.first.wpilib.plugins.simulation.WPILibSimulationPlugin; -import edu.wpi.first.wpilib.plugins.simulation.preferences.PreferenceConstants; - -public class SimulationInstaller extends AbstractInstaller { - - public SimulationInstaller(String version) { - // copy gazebo plugins wpilib/simulation/plugins - super(version, WPILibSimulationPlugin.getDefault().getPreferenceStore() - .getString(PreferenceConstants.LIBRARY_INSTALLED), - WPILibSimulationPlugin.getDefault().getPluginsDir()); - } - - public void installModels() { - // download models - // temporarily hardcoding link, but should be smarter - - String inputFilePath = WPILibSimulationPlugin.getDefault() - .getSimulationDir() + File.separator + "models.zip"; - File inputFile = new File(inputFilePath); - - try { - if (inputFile.exists()) { - WPILibSimulationPlugin.logInfo("models doesn't need to be downloaded again"); - } else { - URL url = new URL("https://usfirst.collab.net/sf/frs/do/downloadFile/projects.wpilib/frs.simulation.frcsim_gazebo_models/frs1162?dl=1"); - HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); - try (InputStream stream = con.getInputStream()) { - WPILibSimulationPlugin.logInfo("downloading models zip"); - Files.copy(stream, Paths.get(inputFilePath)); - } - } - // unzip - WPILibSimulationPlugin.logInfo("unzipping to "+ WPILibSimulationPlugin.getDefault().getSimulationDir()); - super.installIfNecessary(inputFilePath, WPILibSimulationPlugin.getDefault().getSimulationDir()); - } catch (MalformedURLException mue) { - WPILibSimulationPlugin - .logInfo("Malformed URL Exception when downloading models"); - WPILibSimulationPlugin.logInfo(mue.getLocalizedMessage()); - } catch (IOException ioe) { - WPILibSimulationPlugin - .logInfo("IO Exception when downloading models"); - WPILibSimulationPlugin.logInfo(ioe.getLocalizedMessage()); - } - - } - - public void installPlugins() { - super.installIfNecessary(); - } - - @Override - protected String getFeatureName() { - return "simulation"; - } - - @Override - protected void updateInstalledVersion(String version) { - IPreferenceStore prefs = WPILibSimulationPlugin.getDefault() - .getPreferenceStore(); - prefs.setValue(PreferenceConstants.LIBRARY_INSTALLED, version); - - } - - @Override - protected InputStream getInstallResourceStream() { - return SimulationInstaller.class - .getResourceAsStream("/resources/simulation.zip"); - } -} diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/preferences/PreferenceConstants.java b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/preferences/PreferenceConstants.java deleted file mode 100644 index df939cdce2..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/preferences/PreferenceConstants.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.wpi.first.wpilib.plugins.simulation.preferences; - -/** - * @author peter mitrano - * - * Constant definitions for plug-in preferences - */ -public class PreferenceConstants { - public static final String LIBRARY_INSTALLED = "libraryVersion_current"; -} diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/preferences/PreferenceInitializer.java b/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/preferences/PreferenceInitializer.java deleted file mode 100644 index 02ed687f91..0000000000 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.simulation/src/main/java/edu/wpi/first/wpilib/plugins/simulation/preferences/PreferenceInitializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package edu.wpi.first.wpilib.plugins.simulation.preferences; - -import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; -import org.eclipse.jface.preference.IPreferenceStore; - -import edu.wpi.first.wpilib.plugins.core.WPILibCore; - -/** - * @author peter mitrano - * - * Class used to initialize default preference values. - */ -public class PreferenceInitializer extends AbstractPreferenceInitializer { - - /* - * (non-Javadoc) - * - * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences() - */ - public void initializeDefaultPreferences() { - IPreferenceStore store = WPILibCore.getDefault().getPreferenceStore(); - if (!store.contains(PreferenceConstants.LIBRARY_INSTALLED)) - store.setValue(PreferenceConstants.LIBRARY_INSTALLED, "none"); - } -} diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.updatesite/site.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.updatesite/site.xml index 6286845aec..f6498c4bba 100644 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.updatesite/site.xml +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.updatesite/site.xml @@ -6,9 +6,6 @@ - - - Core WPILib Robot Development Tools. diff --git a/eclipse-plugins/pom.xml b/eclipse-plugins/pom.xml index 376a31b53f..fe3ab7034e 100644 --- a/eclipse-plugins/pom.xml +++ b/eclipse-plugins/pom.xml @@ -11,8 +11,6 @@ edu.wpi.first.wpilib.plugins.core edu.wpi.first.wpilib.plugins.core.feature - edu.wpi.first.wpilib.plugins.simulation - edu.wpi.first.wpilib.plugins.simulation.feature edu.wpi.first.wpilib.plugins.cpp edu.wpi.first.wpilib.plugins.cpp.feature edu.wpi.first.wpilib.plugins.java