XML Imports

I’m trying to test the XML import feature, but whatever I try I keep getting an error stating the element is missing from the XML file. We want to be able to parse the XML and provide this as a ServerConnect interface.

We have a file “feature.xml” in the local path. This is configured with the “Import XML File” step as below -:

The first line of the XML starts with -:

<features name="${project.artifactId}-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0">

But when I view this, I get the error -:

{"data":{"xmlImportFeatures":"features is missing in \/customise\/feature.xml"}}

I can’t find any documentation on the XML import so I’m guessing that this is configured correctly. Any help would be appreciated.

Can you post your xml content please?

Here it is.

As a side question - is there a way in Wappler to edit files such as this XML, or a manual PHP file? Current edit seems disabled so cut and paste doesn’t work with Ctrl-A to select everything… Thanks.

?xml version="1.0" encoding="UTF-8"?>
<!--

	Copyright (c) 2020-2020 Contributors to the OpenSmartHouse project

	See the NOTICE file(s) distributed with this work for additional
	information.

	This program and the accompanying materials are made available under the
	terms of the Eclipse Public License 2.0 which is available at
	http://www.eclipse.org/legal/epl-2.0

	SPDX-License-Identifier: EPL-2.0

-->
<features name="${project.artifactId}-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0">

	<repository>mvn:org.opensmarthouse.core.features.karaf/org.opensmarthouse.core.features.karaf.opensmarthouse-tp/${project.version}/xml/features</repository>

	<feature name="opensmarthouse-core-base" description="opensmarthouse Core" version="${project.version}">
		<xdetailsx>Open SmartHouse Core Bundles</xdetailsx>

		<requirement>opensmarthouse.tp;filter:="(feature=base)"</requirement>
		<feature dependency="true">opensmarthouse.tp-base</feature>

		<feature dependency="true">opensmarthouse.tp-gson</feature>

		<requirement>opensmarthouse.tp;filter:="(&amp;(feature=xtext)(version&gt;=2.19.0)(!(version&gt;=2.20.0)))"</requirement>
		<feature dependency="true">opensmarthouse.tp-xtext</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=jax-rs)"</requirement>
		<feature dependency="true">opensmarthouse.tp-jax-rs</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=httpclient)"</requirement>
		<feature dependency="true">opensmarthouse.tp-httpclient</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.core/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.discovery/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.dispatch/${project.version}</bundle>
		<bundle start-level="75">mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.xml/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core/${project.version}</bundle>
		<feature dependency="true">opensmarthouse-core-storage-mapdb</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.id/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.persistence/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.semantics/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.scheduler/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.thing/${project.version}</bundle>
		<bundle start-level="75">mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.thing.xml/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.transform/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.audio/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.voice/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.console/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.monitor/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.net/${project.version}</bundle>
		<feature dependency="true">pax-http-whiteboard</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.http/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.optimize/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.core/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.sse/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-auth-jaas" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.auth.jaas/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-auth-oauth2client" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.auth.oauth2client/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-automation" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-ephemeris</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.automation/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-automation-module-script" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature dependency="true">opensmarthouse-core-automation</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.automation.module.script/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-automation-module-script-rulesupport" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature dependency="true">opensmarthouse-core-automation</feature>
		<feature dependency="true">opensmarthouse-core-automation-module-script</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.automation.module.script.rulesupport/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-automation-module-media" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature dependency="true">opensmarthouse-core-automation</feature>
		<feature dependency="true">opensmarthouse-core-automation-module-script</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.automation.module.media/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-automation-rest" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature dependency="true">opensmarthouse-core-automation</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.automation.rest/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-config-serial" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-io-transport-serial</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.serial/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-config-discovery-usbserial" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.discovery.usbserial/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.discovery.usbserial.linuxsysfs/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-ephemeris" version="${project.version}">
		<requirement>opensmarthouse.tp;filter:="(feature=jollyday)"</requirement>
		<feature dependency="true">opensmarthouse.tp-jollyday</feature>
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.ephemeris/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-bin2json" description="Binary to JSON converter" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.bin2json/${project.version}</bundle>
		<requirement>opensmarthouse.tp;filter:="(feature=jbbp)"</requirement>
		<feature dependency="true">opensmarthouse.tp-jbbp</feature>
	</feature>

	<feature name="opensmarthouse-core-io-console-karaf" description="Karaf Console support for SmartHome stuff"
		version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>shell</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.console.karaf/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-http-auth" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-auth-jaas</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.http.auth/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-http-auth-basic" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.http.auth.basic/${project.version}</bundle>

		<feature>opensmarthouse-core-io-http-auth</feature>
		<config name="org.opensmarthouse.core.auth">
			enabled = true
		</config>
	</feature>

	<feature name="opensmarthouse-core-io-rest-auth" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-auth-jaas</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.auth/${project.version}</bundle>
		<requirement>opensmarthouse.tp;filter:="(feature=jose4j)"</requirement>
		<feature dependency="true">opensmarthouse.tp-jose4j</feature>
	</feature>

	<feature name="opensmarthouse-core-io-rest-log" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.log/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-rest-sitemap" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-ui</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.sitemap/${project.version}</bundle>
		<feature dependency="true">opensmarthouse-core-model-sitemap</feature>
	</feature>

	<feature name="opensmarthouse-core-io-rest-audio" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.audio/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-rest-voice" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.voice/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-rest-mdns" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-io-transport-mdns</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.mdns/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-transport-coap" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=coap)"</requirement>
		<feature dependency="true">opensmarthouse.tp-coap</feature>
	</feature>

	<feature name="opensmarthouse-core-io-transport-dbus" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.dbus/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-transport-http" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=httpclient)"</requirement>
		<feature dependency="true">opensmarthouse.tp-httpclient</feature>
	</feature>

	<feature name="opensmarthouse-core-io-transport-mdns" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=jmdns)"</requirement>
		<feature dependency="true">opensmarthouse.tp-jmdns</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.mdns/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.discovery.mdns/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-transport-mqtt" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=hivemqclient)"</requirement>
		<feature dependency="true">opensmarthouse.tp-hivemqclient</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.mqtt/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-transport-serial" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<requirement>osgi.service;filter:="(objectClass=org.opensmarthouse.core.io.transport.serial.SerialPortManager)"</requirement>
		<requirement>osgi.service;filter:="(objectClass=org.opensmarthouse.core.io.transport.serial.SerialPortProvider)"</requirement>
		<feature dependency="true">opensmarthouse-core-io-transport-serial-rxtx</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.serial/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-transport-serial-javacomm" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<requirement>opensmarthouse.tp;filter:="(&amp;(feature=serial)(impl=javacomm))"</requirement>
		<feature dependency="true">opensmarthouse.tp-serial-javacomm</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.serial/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.serial.javacomm/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-transport-serial-rxtx" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<requirement>opensmarthouse.tp;filter:="(&amp;(feature=serial)(impl=rxtx))"</requirement>
		<feature dependency="true">opensmarthouse.tp-serial-rxtx</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.serial/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.serial.rxtx/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-transport-serial-rfc2217" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<requirement>opensmarthouse.tp;filter:="(&amp;(feature=serial)(impl=rxtx))"</requirement>
		<feature dependency="true">opensmarthouse-core-io-transport-serial-rxtx</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=commons-net)"</requirement>
		<feature dependency="true">opensmarthouse.tp-commons-net</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.serial/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.serial.rxtx.rfc2217/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-io-transport-upnp" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=jupnp)"</requirement>
		<feature dependency="true">opensmarthouse.tp-jupnp</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.transport.upnp/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.config.discovery.upnp/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse.inc-model-core" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.core/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-item" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse.inc-model-core</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.item/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.item.runtime/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-item-ide" version="${project.version}">
		<feature dependency="true">opensmarthouse-core-model-item</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=xtext-ide)"</requirement>
		<feature dependency="true">opensmarthouse.tp-xtext-ide</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.item.ide/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-persistence" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-model-item</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.persistence/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.persistence.runtime/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-persistence-ide" version="${project.version}">
		<feature dependency="true">opensmarthouse-core-model-persistence</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=xtext-ide)"</requirement>
		<feature dependency="true">opensmarthouse.tp-xtext-ide</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.persistence.ide/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-rule" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-model-item</feature>
		<feature>opensmarthouse-core-model-persistence</feature>
		<feature>opensmarthouse-core-model-script</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.rule/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.rule.runtime/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-rule-ide" version="${project.version}">
		<feature dependency="true">opensmarthouse-core-model-rule</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=xtext-ide)"</requirement>
		<feature dependency="true">opensmarthouse.tp-xtext-ide</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.rule.ide/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-script" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-ephemeris</feature>
		<feature>opensmarthouse-core-model-persistence</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.script/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.script.runtime/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-script-ide" version="${project.version}">
		<feature dependency="true">opensmarthouse-core-model-script</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=xtext-ide)"</requirement>
		<feature dependency="true">opensmarthouse.tp-xtext-ide</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.script.ide/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-sitemap" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse.inc-model-core</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.sitemap/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.sitemap.runtime/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-sitemap-ide" version="${project.version}">
		<feature dependency="true">opensmarthouse-core-model-sitemap</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=xtext-ide)"</requirement>
		<feature dependency="true">opensmarthouse.tp-xtext-ide</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.sitemap.ide/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-thing" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-model-item</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.thing/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.thing.runtime/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-thing-ide" version="${project.version}">
		<feature dependency="true">opensmarthouse-core-model-thing</feature>

		<requirement>opensmarthouse.tp;filter:="(feature=xtext-ide)"</requirement>
		<feature dependency="true">opensmarthouse.tp-xtext-ide</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.thing.ide/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-model-lsp" version="${project.version}">

		<requirement>opensmarthouse.tp;filter:="(&amp;(feature=xtext-ide)(version&gt;=2.19.0)(!(version&gt;=2.20.0)))"</requirement>
		<feature dependency="true">opensmarthouse.tp-xtext-ide</feature>

		<requirement>opensmarthouse.tp;filter:="(&amp;(feature=lsp4j)(version&gt;=0.8.0)(!(version&gt;=0.9.0)))"</requirement>
		<feature dependency="true">opensmarthouse.tp-lsp4j</feature>

		<feature>opensmarthouse-core-model-item-ide</feature>
		<feature>opensmarthouse-core-model-persistence-ide</feature>
		<feature>opensmarthouse-core-model-rule-ide</feature>
		<feature>opensmarthouse-core-model-script-ide</feature>
		<feature>opensmarthouse-core-model-sitemap-ide</feature>
		<feature>opensmarthouse-core-model-thing-ide</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.model.lsp/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-storage-mapdb" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.storage.mapdb/${project.version}</bundle>

		<requirement>opensmarthouse.tp;filter:="(feature=mapdb)"</requirement>
		<feature dependency="true">opensmarthouse.tp-mapdb</feature>
	</feature>

	<feature name="opensmarthouse-core-storage-json" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>

		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.storage.json/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-ui" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-model-item</feature>
		<feature>opensmarthouse-core-model-sitemap</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.ui/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.rest.ui/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-core-ui-icon" version="${project.version}">
		<feature>opensmarthouse-core-base</feature>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.ui.icon/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-runtime-base" description="opensmarthouse Runtime Base" version="${project.version}">
		<bundle>mvn:com.google.guava/guava/18.0</bundle>
		<requirement>opensmarthouse.tp;filter:="(feature=commons-net)"</requirement>
		<feature dependency="true">opensmarthouse.tp-commons-net</feature>
		<feature>opensmarthouse-core-base</feature>
		<feature>opensmarthouse-core-auth-jaas</feature>
		<feature>opensmarthouse-core-ephemeris</feature>
		<feature>opensmarthouse-core-io-console-karaf</feature>
		<feature>opensmarthouse-core-io-http-auth</feature>
		<feature>opensmarthouse-core-io-rest-auth</feature>
		<feature>opensmarthouse-core-io-rest-sitemap</feature>
		<feature>opensmarthouse-core-io-rest-audio</feature>
		<feature>opensmarthouse-core-io-rest-voice</feature>
		<feature>opensmarthouse-core-io-rest-mdns</feature>
		<feature>opensmarthouse-core-model-lsp</feature>
		<feature>opensmarthouse-core-model-item</feature>
		<feature>opensmarthouse-core-model-persistence</feature>
		<feature>opensmarthouse-core-model-rule</feature>
		<feature>opensmarthouse-core-model-script</feature>
		<feature>opensmarthouse-core-model-sitemap</feature>
		<feature>opensmarthouse-core-model-thing</feature>
		<feature>opensmarthouse-core-ui-icon</feature>
		<feature>opensmarthouse-core-storage-json</feature>
		<feature>opensmarthouse-runtime-certificate</feature>
		<feature>opensmarthouse-transport-mdns</feature>
		<feature>opensmarthouse-transport-http</feature>
		<feature prerequisite="true">shell</feature>
		<feature prerequisite="true">wrapper</feature>
		<feature prerequisite="true">jaas</feature>
		<!-- This bundle needs to be started early as it registers the 404 and startup pages on Jetty -->
		<!-- It is temperarily disabled due to https://github.com/opensmarthouse/opensmarthouse-core/issues/422 -->
		<!-- <bundle start-level="30">mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.ui.start/${project.version}</bundle> -->
		<bundle start-level="90">mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.boot/${project.version}</bundle>
		<bundle>mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.karaf/${project.version}</bundle>
		<config name="org.opensmarthouse.core.audio">
			defaultSink = enhancedjavasound
		</config>
		<config name="org.opensmarthouse.core.voice">
			defaultHLI = rulehli
		</config>
	</feature>

	<feature name="opensmarthouse-runtime-certificate" description="SSL Certificate Generator"
		version="${project.version}">
		<bundle start-level="20">mvn:org.opensmarthouse.core.bundles/org.opensmarthouse.core.io.jetty.certificate/${project.version}</bundle>
	</feature>

	<feature name="opensmarthouse-runtime-jna" description="Java Native Access (JNA)" version="${project.version}">
		<bundle>mvn:net.java.dev.jna/jna/${jna.version}</bundle>
		<bundle>mvn:net.java.dev.jna/jna-platform/${jna.version}</bundle>
	</feature>

	<feature name="opensmarthouse-transport-coap" description="CoAP Transport" version="${project.version}">
		<feature>opensmarthouse-core-io-transport-coap</feature>
	</feature>

	<feature name="opensmarthouse-transport-http" description="HTTP Transport" version="${project.version}">
		<capability>opensmarthouse.tp;feature=httpclient;version=${jetty.version}</capability>
		<feature>opensmarthouse-core-auth-oauth2client</feature>
		<bundle dependency="true">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle>
		<bundle dependency="true">mvn:org.eclipse.jetty/jetty-client/${jetty.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.jetty/jetty-http/${jetty.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.jetty/jetty-util/${jetty.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.jetty/jetty-io/${jetty.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.jetty/jetty-proxy/${jetty.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.jetty.websocket/websocket-api/${jetty.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.jetty.websocket/websocket-common/${jetty.version}</bundle>
		<bundle dependency="true">mvn:org.eclipse.jetty.websocket/websocket-client/${jetty.version}</bundle>
	</feature>

	<feature name="opensmarthouse-transport-mdns" description="mDNS Transport" version="${project.version}">
		<feature>opensmarthouse-core-io-transport-mdns</feature>
	</feature>

	<feature name="opensmarthouse-transport-mqtt" description="MQTT Transport" version="${project.version}">
		<feature>opensmarthouse-core-io-transport-mqtt</feature>
	</feature>

	<feature name="opensmarthouse-transport-serial" description="Serial Transport" version="${project.version}">
		<feature>opensmarthouse-core-io-transport-serial-rfc2217</feature>
		<feature>opensmarthouse-core-config-serial</feature>
		<feature>opensmarthouse-core-config-discovery-usbserial</feature>
	</feature>

	<feature name="opensmarthouse-transport-upnp" description="UPnP Transport" version="${project.version}">
		<feature>opensmarthouse-core-io-transport-upnp</feature>
	</feature>

</features>

I don’t really understand what do you mean?
You can open any file from your project and edit it in the code editor.

Well, that doesn’t work for me. I often find that I can’t edit code (even code generated directly through Wapper) - sometimes the code view will work (ie I can edit the code), and other times it is read only. For this XML file, and other PHP files I’ve tried to edit, it is always read only. I can’t type in the “editor” at all.

This is on a Mac…

Please post a separate topic with a short video showing the problem.
Are you sure this is not related to the bug in Monaco editor, which has been reported quite a few times that when you edit a file in code view, what you type appears in another tab?

I’ve no idea - I’ve not see this reported anywhere and to be honest I don’t actually know what the “Monaco editor” is - I’m just using Wappler. Do you have a reference for that?

Monaco Editor is the code editor used in Wappler …

Please check the topic i linked to.

Ok, but from my perspective (ie a user) I’m just using Wappler - which is your product. Are you suggesting i need to take this issue up with a 3rd party?

Please check the topic i linked to and let us know if this is the same that happens to your when you say:

1 Like

It’s hard to be sure, but yes, it seems possible that it is the same thing. Do you expect it to get resolved soon?

Sometimes when I have these experiences it’s when I have three or more pages open in code or split views. I have found a consistent pattern when the keyboard becomes inactive. Usually I noted that one or more previously edited pages were not saved. Sometimes the changes that I was trying to make on the current page I was editing actually was being placed on one of the opened unsaved pages. It’s usually the previous edited page or the last page I had focused in the window.

The remedy that I have found that works is to first save all opened pages. Return to the page that was inactive. Usually it solves the issue. If not, I just close the other pages. This almost always resolves the issue.

It’s not perfect, but until the issue is repaired by Monaco authors, try this work around, or just work on one page opened at a time. :smirk:

1 Like

Hi @Teodor is there any news on this?

Thanks.

Hi @Teodor. Sorry to keep pushing on this, but I’d really appreciate any help you can provide to get this working or if there is any documentation you can point me at that could help would be most welcome.

Thanks.

@Teodor can I assume from the lack of response this week that there is a bug with processing XML files or have you just not got around to looking at the file I sent you last weekend? Can you please provide some sort of feedback - just ignoring this is really frustrating as it’s really hard for us to plan, and all the time we’re unable to deliver.

If there is a better place to request support for Wappler then please also let me know and I am happy to try that, but I don’t see any support plans listed on your website :(.

Hello,
I haven’t really tested your case yet, sorry. I believe there’s something with your specific XML file, which is causing this.
Maybe @patrick can check this.

1 Like

Thanks - I appreciate the feedback.

The xml import is very limited, it is actually for importing the data that was exported with the exporter. It only support array like xml, that is a xml with one root element and under it are the elements that is returns as data.

Your xml contains multiple levels and different kind of elements, that is not supported with the importer.

Thanks @patrick. Can you suggest how to work with this sort of thing? In the past when I’ve suggested support for external libraries so we can run a PHP algorithm, or add support for some external PHP, I keep getting told that everything can be done visually, but it seems there may be some limitations after all.

How can we work with this sort of thing? Ideally I’d be happy to call a PHP function in the flow, but I don’t think that’s possible so we keep striking severe limitations of Wappler.