How to automate TC Server war deployment - maven

I download TC server STANDARD edition on my computer because this is the installed one on QA servers. My final goal is to write a maven task to deploy a war app in a distant tc server's instance.
Because of the use of the standard edition, tomcat manager is not pre-installed (so I cannot use maven's cargo plugin anymore).
So is there any method to deploy my jar in a distant server instance without putting it manually in webapp folder ?
Thanks in advance !

Here are a several options:
1) Our latest release 3.2.x (standard) introduced the tomcat-manager template which will set up the Manager webapp and secure it for a production environment.
2) You can also use the developer edition of tc Server. If it is the same version it will be nearly identical, it just will not contain some of the templates in the standard edition.
3) Add a maven target that copies the Manager webapp to the webapps folder.

Related

Set targeted runtime in Maven app

I'm developing Maven apps with IBM Rational Application Developer and deploying EARs on Websphere Application Server 8.5. When I generate EAR file using maven-ear-plugin and try to deploy it on WAS, Eclipse complains about targeted runtime not being set.
How can I set targeted runtime during build?

How to integrate Maven in JDeveloper 11.1.1.7.0

I am trying to use Maven in JDeveloper 11.1.1.7.0 version. I installed the maven plugin through check for updates. But I see the maven extension as "Developer Preview" version while installing. After installing the plugin, I can see maven option available in JDeveloper.
I tried to create a fusion web application and created pom.xml for the project. But it is creating an empty pom with only Model dependency and the compiler plugin. Default ADF libraries are not being added to the pom.xml.
I installed the JDeveloper 11.1.2.0.0 version and did the same. Here all the default ADF libraries that will come with fusion web application are created automatically in pom.xml.
Is Maven is supported completely in JDeveloper 11.1.1.7.0 version ? Or do we have any other way to add the ADF Libraries in pom.xml. ?
I am struggling with this from one week. Can you please suggest me on this.
Regards,
Joseph
You are using an 11g R1 release while JDev 11.1.2.0.0 is 11g R2. And then this comes into play:
With JDeveloper 11gR2 you can use Maven 2 as your build engine, before
11gR2 you could download a plugin which did not work great because all
the required Oracle libraries which were not available in a public
repository. So you had no choice to add them manually to a Maven
Repository before you can use Maven.
Source: http://biemond.blogspot.be/2011/06/building-with-maven-in-jdeveloper-11gr2.html
Side note: You won't be able to compile your application using maven on a server without JDeveloper installed on it because Oracle doesn't provide a maven repository containing the ADF libraries (an option is to add the ADF libs to your own repo).

How to Deploy BizTalk Application into production Server?

I have the following doubts in BizTalk deployment:
How to deploy the BizTalk application to the production server?
When I am modify the existing BizTalk application like artifacts, custom pipeline/functions, custom classes, etc., how again do I deploy the BizTalk application to the server?
I know BTDF is the one of the best tools for deploying BizTalk applications and we can deploy BizTalk application to server using it?
1. Deployment
For deployment you can use the built-in MSI generation wizard.
It means you deploy the application on a dev environment using Visual Studio, then on the admin console, export the application a MSI using the wizard.
Finally you can use that MSI to deploy the app to the Production server.
That's a two step process (Run MSI, import MSI in Bizalk Admin console).
Note that only your Biztalk assemblies are installed by the MSI.
If you use .NET assemblies in your solution, they need to be GAC'ed manually.
You will also need to restart the host instances running your Biztalk application.
See details here:
https://msdn.microsoft.com/en-ca/library/aa559168.aspx
That's a few manual steps.
Alternatively you can automate some of these steps by using the BTSTask, a command line tool included with Biztalk.
You can script all the manual steps.
Obviously it takes time to write such script, so it's only worth it if you are going to deploy many times in non-dev environments.
BTSTask reference:
https://msdn.microsoft.com/en-ca/library/aa559686.aspx
2. Redeployment
Usually you completely remove the old version and then install the new one:
Delete the application from the Biztalk Administration Console and ungac the assemblies it uses.
The whole process would look like:
1. Make sure there are no running instances in you application. You can always disable your receive location and let the running instances complete
2. Delete Biztalk application
3. UnGAC associated assemblies
4. Deploy new Biztalk application version and GAC associated assemblies
5. Restart Host Instances used by your Biztalk application
EDIT: To address OP's concern about deleting a running application:
It is indeed possible to deploy resources independently and never delete your application.
But it does not mean you will not interrupt the service.
An orchestration for example, can never be redeployed when it has running instances.
So assuming that you divided your functionality properly into applications, I find it cleaner and easier to delete the whole application than going after each resource.
Otherwise, yes you can go and replace your resources separately.
But to me it seems like an overhead caused by not having defined applications correctly.
3. BTDF
The Biztalk Deployment Framework is a good tool to have some kind of automation in your deployment without having to write the scripts yourself.
Good compromise between customization to your needs and setup time.
I have used it on a freelance project. It was very helpful because I was able to deliver a package with a only a couple of deployment instructions, and the non-techie client was able to deploy painlessly.

Release Management using Team Foundation Services (one Branch)

I need to use visual studio services (on cloud) to automate integration and release process.
I have 3 environments dev, test and deployment. I am planning to use only one branch the Dev that promotes the changes to next Env (TEST) and then to release.
Question 1:
Can I do it using one branch (Main Dev) or i need to create separate branch for each one? and how?
As far as i know that when using TFS server on premise, we should install release manager on the same machine and deployment agents on the different environments.
Question 2:
How can I automate release management using visual studio cloud services, taking into consideration that test and production environment don't use Azure services, they just use IIS to host our websites.
For the first question, the answer is YES and usually there should be only one branch for one release. The release/build that been deployed to the three environments in the release should be the same. Use the build from different branches in three environments does not make sense.
For the second question, you can use web deploy or Adding FTP Publishing to a Web Site in IIS 7 and then deploy via FTP.
You start using Release Management by creating a release definition in the RELEASE hub of your team project. A release definition specifies What to deploy - the set of artifacts that constitutes a new release, and How to deploy - the series of automation tasks that should be run in each environment. Each environment is simply a named logical entity that represents a deployment target for your release.
It seems you want to change project between environment in one release definition, which is not supported. A typical use case for Release Management:
You can get more information of Release Management at website https://msdn.microsoft.com/en-us/library/vs/alm/release/overview

How to use CruiseControl.NET for database and windows service deployment?

I have a VS 2008 solutions that includes a number of projects including a couple of class libraries, a web application, a windows service and a SQL 2008 database project. The build server currently has CruiseControl.NET version 1.5.0.6237, command-line subversion client and .NET framework 3.5 SP1 installed (Windows Server 2008 R2, no Visual Studio). I was able to configure ccnet to retrieve get latest from svn repository, build the solution using an MSBuild task and deploy the web application using robocopy. Now I'm struggling to make ccnet deploy the database script and I also need get the windows service deploy and start on the build/dev server. The latest error is that the assembly Microsoft.Data.Schema.Tasks is missing on the build server (I had to add Microsoft.Data.Schema.Common.targets and Microsoft.Data.Schema.SqlTasks.targets files to the solution and modify the database project file to get this far).
What would be the best CI/deployment approach in my scenario? Am I using the right tools for the job, or should I be using something other than ccnet? Do I need to install anything else on the build/dev server to make my life easier?
Please be very specific since I'm new to CruiseControl.NET and MSBuild tasks.
You can use nant.
For a jump start you can use
nantbuilder.
For service install
read this
For a DB deploy read this

Resources