We have some requests coming down the pike from the Developer Group with
regards to running Forge as a Service (which is great!).
Additionally, I'm suspecting this will soon be very important for us as
well, as we continue to build out what's currently known as the "Obsidian
Generator", using Forge as a backend.
I'm hoping the Forge team will kindly advise as to our preparedness for
running Forge in a multitenant environment. Concerns may include resource
consumption (not running an instance-per-user), security, etc. Have we yet
broached this subject specifically in the prototypes I've seen thus far
using Forge Online?
I've requested of the Developer Group a list of requirements they've
devised; will send those along here when I have them. In the meantime,
mind describing where we currently stand?
Red Hat Developer Group Architecture
currently I am creating a command that should receive a Test Java Class as
I have created a command with an attribute of type JavaClassSource.
@WithAttributes(shortName = 'j', label = "Test Class", required = true)
private UIInput<JavaClassSource> testClass;
Then when I try to run this command from CLI the first thing I have noted
is that autocompletition of the java class name does not work, and when I
set it manually typing all characters
i.e arquillian-algeron-create-contract-fragment --consumer consumer
--provider provider --fragment myFragment --test-class
org.contract.MyContract then I got No converter found from java.lang.String
I think that this is because it expects the class to be found as main java
classes and not test classes, any idea on why this is happening?
Thank you so much.
Hello, is there any way to set some kind of metadata that survives to forge
console life time?
What I want to do is that when you run a command you set some metadata
regarding an option that user has chosen.
Then in the future when user runs other commands we can get that
information from there and act accordantly.
Hi I am generating an XML file in an addon using:
The node I am creating is done:
xml.getOrCreate("extension@qualifier=" + qualifier)
.getOrCreate("property@name=" + key)
were value is a yaml-like expression.
The problem is that the resulting XML is not well indented:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<arquillian xmlns="http://jboss.org/schema/arquillian" xmlns:xsi="
I can understand that YAML thing is not correctly formatted but notice that
the closing </property> tag is not correctly indented.
I have next command:
public class AddAlgeronFolderPublisher extends AbstractProjectCommand
private ProjectFactory projectFactory;
private FacetFactory facetFactory;
@WithAttributes(shortName = 'o', label = "Output Folder", required =
private UISelectOne<String> outputFolder;
@WithAttributes(shortName = 'c', label = "Contracts Folder")
private UISelectOne<String> contractFolder;
public UICommandMetadata getMetadata(UIContext context)
return Metadata.from(super.getMetadata(context), getClass())
.name("Arquillian Algeron: Add Folder Publisher")
.description("This command registers a Folder Publisher for
public void initializeUI(UIBuilder builder) throws Exception
When in Forge console I run:
arquillian-algeron-add-folder-publisher --output-folder /tmp
***INFO*** Required inputs not satisfied, entering interactive mode
***ERROR*** Output Folder must be specified.
But you can see that I am setting the attribute in the command so any idea
of why this is failing?
Hi Forgers ;)
First and foremost many thanks for this great tool :)
We are working on Arquillian Addon
<https://github.com/forge/addon-arquillian> bringing more capabilities as
our universe is growing. One thing which has been quite challenging is
testing. There are several ways of doing it as one can figure from
different addons available out in the wild.
I would like to get better understanding of what would be the preferred way
of testing an addon.
I personally liketestShellapproach as it gives you end-to-end flow and
ability to verify the behaviour of what user would do with the tool. This
has obvious performance drawbacks, but I believe we could make it more
efficient. I have developed small set of testing assertions
based on assertjfor verifying the state of a project (e.g. classes or
artifacts present). It is still work in progress and I’m eagerly looking
for feedback, but eventually I would like to bring it upstream to test
harness if that makes sense. You can see how it looks like for example in
the test verifying junit test scaffolding
Another problematic aspect is Forge addon deployment - the documentation
<https://forge.jboss.org/document/test-your-addon> seems not to reflect the
current state and I failed badly trying to create my own@Deployment with
assertj bundled. What I ended up with is an Arquillian extension
which lets you add dependencies (resolved by Shrinkwrap under the hood) as
well as packages by simply using annotations - you can see both in action
in the junit test mentioned above. Is it the right way? We can also think
about bringing it upstream. Can we improve the docs to show what is
required to create proper @Deployment for the addon?
As Arquillian Addon is around for quite some time and several folks were
involved in it, there is also another way of testing forge commands by
using CommandController - can someone point me to the doc or briefly
explain what is the difference? Here’s one test
from our addon.