Jrule remote development vscode

Can a JRule be developed on the target machine via remote development?

  • Install the addon by copying the org.openhab.automation.jrule-3.x.x-BETAX.jar to openhab-addons folder Download the latest release from Releases · seaside1/jrule · GitHub
    I did this.

  • When the addon is started it will:

  1. Create JAVA source files for all items
    check
  2. Compile java source files and create a resulting jrule.jar file under /etc/openhab/automation/jrule/jar
    check
  3. Compile any java rules file under /etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/ It is possible to use package structure with subdirectories in this folder, or the can be place in a flat structure right under this folder
    Mine was empty.
  4. Create jar files with dependencies to be used when creating your java-rules (jrule-items.jar). The two jar files needed for Java rules development can be found under /etc/openhab/automation/jrule/jar
    check.

I then added /etc/openhab/automation/jrule/jar as a dependency in my project.
Next, I created the MySwitchRule aka Hello World java file.
I’m getting a lot of errors that I haven’t heard others talk about, so I don’t think I can do it the way I want:

[{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "536871240",
	"severity": 8,
	"message": "The declared package \"rules.org.openhab.automation.jrule.rules.user\" does not match the expected package \"automation.jrule.rules.org.openhab.automation.jrule.rules.user\"",
	"source": "Java",
	"startLineNumber": 1,
	"startColumn": 9,
	"endLineNumber": 1,
	"endColumn": 54
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "268435846",
	"severity": 8,
	"message": "The import org.openhab cannot be resolved",
	"source": "Java",
	"startLineNumber": 2,
	"startColumn": 15,
	"endLineNumber": 2,
	"endColumn": 26
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "268435846",
	"severity": 8,
	"message": "The import org.openhab cannot be resolved",
	"source": "Java",
	"startLineNumber": 3,
	"startColumn": 8,
	"endLineNumber": 3,
	"endColumn": 19
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "268435846",
	"severity": 8,
	"message": "The import org.openhab cannot be resolved",
	"source": "Java",
	"startLineNumber": 4,
	"startColumn": 8,
	"endLineNumber": 4,
	"endColumn": 19
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "268435846",
	"severity": 8,
	"message": "The import org.openhab cannot be resolved",
	"source": "Java",
	"startLineNumber": 5,
	"startColumn": 8,
	"endLineNumber": 5,
	"endColumn": 19
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "268435846",
	"severity": 8,
	"message": "The import org.openhab cannot be resolved",
	"source": "Java",
	"startLineNumber": 6,
	"startColumn": 8,
	"endLineNumber": 6,
	"endColumn": 19
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "16777218",
	"severity": 8,
	"message": "JRule cannot be resolved to a type",
	"source": "Java",
	"startLineNumber": 8,
	"startColumn": 35,
	"endLineNumber": 8,
	"endColumn": 40
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "16777218",
	"severity": 8,
	"message": "JRuleName cannot be resolved to a type",
	"source": "Java",
	"startLineNumber": 10,
	"startColumn": 5,
	"endLineNumber": 10,
	"endColumn": 15
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "16777218",
	"severity": 8,
	"message": "JRuleWhen cannot be resolved to a type",
	"source": "Java",
	"startLineNumber": 11,
	"startColumn": 5,
	"endLineNumber": 11,
	"endColumn": 15
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "33554515",
	"severity": 8,
	"message": "_MyTestSwitch cannot be resolved to a variable",
	"source": "Java",
	"startLineNumber": 11,
	"startColumn": 23,
	"endLineNumber": 11,
	"endColumn": 36
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "33554515",
	"severity": 8,
	"message": "_MyTestSwitch cannot be resolved to a variable",
	"source": "Java",
	"startLineNumber": 11,
	"startColumn": 53,
	"endLineNumber": 11,
	"endColumn": 66
},{
	"resource": "/etc/openhab/automation/jrule/rules/org/openhab/automation/jrule/rules/user/MySwitchRule.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "67108964",
	"severity": 8,
	"message": "The method logInfo(String) is undefined for the type MySwitchRule",
	"source": "Java",
	"startLineNumber": 13,
	"startColumn": 9,
	"endLineNumber": 13,
	"endColumn": 16
}]