Mule4 deployment configuration - mule

I am new to Mule4.x features. Get to realize that mule-app and mule-deploy has been deprecated. Where and how to provide information about deployment configurations? I can see mule-artifact.json is there but no where I am able to find how to use it with example. Mule docs only talks about elements and it's description but don't have any examples.
Any pointers would be greatly appreciated!
Thanks in advance!

A very short description of mule-artifact.json is available here.
mule-deploy.properties of Mule 3 has auto generated list of config resources, same thing is now available in mule-artifact.json as "configs" for Mule 4. This section will be automatically updated when new mule xml file is added under src/main/mule. Similarly redeploymentEnabled flag is also available in this file.
On the other hand, key-value pairs from mule-app.properties must be specified in Run Configurations section in AnypointStudio and in Properties section on CloudHub.
AnypointStudio Run Configurations:
CloudHub Properties:

Related

Mule requester module is not working in cloudhub

I am using Mule requester module for lookup service using the file connector.it is working perfectly in anypoint studio and not working in cloudhub environment.Does it requires any configuration in cloud hub?
Cloudhub only allows access to one flat directory '/tmp/'. That's the only directory you can use with the file connector on Cloudhub. https://github.com/mulesoft/mulesoft-docs/blob/9f9c8a3950c4cb68e22f579c0ef979658acd170d/runtime-manager/v/latest/cloudhub-and-mule.adoc#disk-persistence
UPDATE FROM COMMENT:
You shouldn't use the Maven directory structure src/main.. etc. as thats not part of the packaged zip so its not on the classpath. If you need to read a resource from the classpath i'm not sure you can do that with the file transport on Cloudhub. If you simply want to load a file from the classpath you're better off using something like:
<set-payload value="#[Thread.currentThread().getContextClassLoader().getResourceAsStream('my-file.abc')]" />
or use the parse-template transformer or other options detailed here:mule read single file from classpath during flow
when we worked on Mule requester with Anypoint studio version 5.4.2, it was working fine for us. We deployed to cloudhub also and it was working for us. we did not faced any issues.

When running a Mule Functional Test Case, is there a way to view the log output from the mule flow?

I'm running a mule functional test case, and would like to see the output of my logger components from within the flow from the console. Is there a way to do this? Unfortunately, all I can see are the outputs from my loggers from within java components that I have built, but not the mule logger components themselves. I'm happy to include any code or files as requested, but I don't think they are necessary to answer this question.
by default when running Functional Test Case only error level logs will be shown.
You can place a log4j2 configuration file (xml) in the classpath to override this. Bear in mind his will work only since Mule 3.6.2.
HTH

Mule Deployment properties file

I have seen some strange behaviour in Mule Application. I created a sample mule project(created flows) and opened mule-deploy.properties file "config.resources" value is empty.
But the same above mentioned key value is getting updated with "configuration xml file name" when i run my mule project.
Is this the behaviour or any updates need to be done.
Can some clarify?
Regards
Vikram
There are some known issues/features around mule-deploy.properties and Mule Studio.
Currently it is expected that when running your project from Mule Studio that mule-deploy.properties-config.resources is automatically populated with all your configuration files.
There are some open issues on this here: https://www.mulesoft.org/jira/browse/STUDIO-3297 that you can vote on.
Once you run the mule application it will automatically updated with the configuration file by default if you have only one main configuration file.But If you are using more configuration files in your application you should manually add all the filenames to the config.properties key separated by comma before run the application.

Need help regarding web config transformation in artifact paths

I am trying to set different artifact paths configuration wise. e.g
In general settings of teamcity I am specifying following artifact paths:
testing\obj\Deploy-Dev\package
testing\obj\Deploy-Test\package
testing\obj\Deploy-Live\package
But when I am publishing a site using the following:
/M /P:Configuration=%env.Configuration% /P:DeployOnBuild=True/P:DeployTarget=MSDeployPublish /P:MsDeployServiceUrl=%env.TargetServer%/MsDeployAgentService /P:DeployiisAppPath=%env.IISPath% /P:MSDeployPublishMethod=RemoteAgent /P:CreatePackageOnPublish=True /P:Username=%env.username% /P:Password=%env.password%
In this step I am using only 1 configuration. I am assuming that by specifying these artifact paths. it will also transform the web configs according to specified configuration. But it is only transforming the one specified while actually packaging.
Any idea how to have web configs transformed in all packages as well.
I am not sure if I fully understand your question but here is what I think that you are asking. "How can I create a web package which has all the web.config transforms required so that I can publish the same package to multiple different environments?"
Unfortunately the way that packaging works is that the web.config is transformed using the web.config transform of the build configuration which is being built. Then the transformed web.config file makes it into the package. The transform files are not packaged.
I do realize that it's important to create a single package and publish that to different locations. We were not able to build the features into the box but I have created a NuGet package, PackageWeb, which can help in this case. I have a 5 minute video posted at http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx which you can take a look at. I am fairly certain that it will help in your scenario. FYI the code for package-web is open source at https://github.com/sayedihashimi/package-web. We do have some known issues. If you do end up using this please do let me know.
Try setting a environment variable for your teamcity artifact path.
testing\obj\%env.Configuration%\package
Troy Hunter -You're deploying it wrong! TeamCity, Subversion & Web Deploy part 5: Web Deploy with TeamCity
Artifact paths do not affect build\packaging process anyhow. They just provide ability to keep some files\folders available after build for further access.
If you want to produce 3 different packages, you will need to specify 3 corresponding build steps in your configuration and get rid of '%env.Configuration%'.

How can I use Sandcastle Help File Builder to generate documentation without documentation source?

I want to be able to generate help documentation from existing topic files (.AML) using Sandcastle. I use Sandcastle Help File Builder to assist the with the configuration and generatation of the documentation.
I do not want to publish any code documentation, however, if I do not specify a Documentation Source (e.g., project, solution, dll, exe, etc.) then the build fails.
How can I configure Sandcastle Help File Builder such that I can generate documentation without exposing the code documentation?
This is accomplished by enabling the Additional Content Only Plugin. This can be found in PlugInConfigurations in the Project Properties. Simply adding this plugin produces the desired output.