tdiesler / gravia Goto Github PK
View Code? Open in Web Editor NEWThe Fuse Portable Runtime
License: Apache License 2.0
The Fuse Portable Runtime
License: Apache License 2.0
The ComponentConfigurer is using a SubstitutePropertiesProvider which delegates to the Runtime for placeholder substitution.
However if a component defines a property with named my.key with default value ${my.key}
my.key = ${my.key} the resolution will fail even if there is a runtime property like my.key=my.value.
The SubstitutePropertiesProvider should ignore the provider that returns the cyclic result and move on to the next properties provider available.
This could be done, with having the SubstitutePropertiesProvider extend the CompositePropertiesProvider so that it has visibility of the actual delegates.
The EnvPropertiesProvider is using a hardcoded default prefix: "GRAVIA_" in many cases, we would like to override it with something else. Maybe this should be overridden using system properties or gravia.properties.
Please take 10 minutes to review these Wiki pages I started. Unfortunately much of the knowledge to fill them in is only know by tdiesler and the source code history.
https://github.com/tdiesler/gravia/wiki/Manifest-Metadata
https://github.com/tdiesler/gravia/wiki/Version-History-&-Compatibility
If possible please take 10 minutes to check the information is correct and update with any new information to assist.
If some of the facts as not exactly known then please provide a link in the wiki to key source code files that would allow someone to easily find the information to help establish the facts, so the documentation is correct.
Thanks
Caused by: java.lang.NullPointerException
at java.io.File.<init>(File.java:277)
at org.jboss.gravia.provision.spi.RuntimeEnvironment.initDefaultContent(RuntimeEnvironment.java:126)
at org.jboss.gravia.provision.internal.ProvisionerActivator.start(ProvisionerActivator.java:48)
File repositoryDir = new File((String) runtime.getProperty(Constants.PROPERTY_REPOSITORY_STORAGE_DIR));
Consider Runtime.getRequiredProperty(...) or defaulting to some storage dir
Seen with fabric8 master. Steps to reproduce:
1, Start bin/fabric8
2. Run container-add-profile root insight-elasticsearch.datastore
3. Wait for it...
Exception will be seen on console for each fragment bundle:
ERROR: Bundle org.apache.felix.framework [0] EventDispatcher: Error during dispatch. (java.lang.IllegalArgumentException: Resource already added: Resource[io.fabric8.insight.
insight-elasticsearch-plugin:1.2.0.SNAPSHOT])
java.lang.IllegalArgumentException: Resource already added: Resource[io.fabric8.insight.insight-elasticsearch-plugin:1.2.0.SNAPSHOT]
at org.jboss.gravia.resource.spi.AbstractResourceStore.addResource(AbstractResourceStore.java:108)
at org.jboss.gravia.provision.spi.RuntimeEnvironment.addRuntimeResource(RuntimeEnvironment.java:117)
at org.jboss.gravia.provision.spi.RuntimeEnvironment$1.moduleChanged(RuntimeEnvironment.java:92)
at org.jboss.gravia.runtime.osgi.internal.ModuleContextAdaptor$ModuleListenerAdaptor.bundleChanged(ModuleContextAdaptor.java:245)
at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:869)
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:790)
at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:515)
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4429)
at org.apache.felix.framework.StatefulResolver.fireResolvedEvents(StatefulResolver.java:1126)
at org.apache.felix.framework.StatefulResolver.resolve(StatefulResolver.java:439)
at org.apache.felix.framework.Felix.resolveBundles(Felix.java:3957)
at org.apache.felix.framework.FrameworkWiringImpl.resolveBundles(FrameworkWiringImpl.java:123)
at io.fabric8.agent.service.Agent$BaseDeployCallback.resolveBundles(Agent.java:496)
at io.fabric8.agent.service.Deployer.deploy(Deployer.java:788)
at io.fabric8.agent.service.Agent.provision(Agent.java:327)
at io.fabric8.agent.service.Agent.provision(Agent.java:187)
at io.fabric8.agent.DeploymentAgent.doUpdate(DeploymentAgent.java:564)
at io.fabric8.agent.DeploymentAgent$2.run(DeploymentAgent.java:215)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Fabric8 Issue: https://issues.jboss.org/browse/FABRIC-1190
RepositoryService is using scr, so why not injecting a service reference to the runtime instead of doing a static singleton lookup?
Yes - we can do that. Its historic - the RepositoryService moved to scr late in the game
Just trying to get the fabric8 distro running on openshift, and honestly gravia logs too much stuff at INFO when it installs/uninstalls components. I'd suggest moving all of that to DEBUG instead to keep the noise down.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.