WebSphere CI deployment plugins options (Bamboo) - plugins

I am very fresh in WebSphere application server and I am setting a CI deployment on it.
So far, I have achieved this target by using a Jython script executed by wsadmin.
This actually seems to be a good approach, but, I was wondering if there are any other plugins that can simplify the maintainability of this script.
The CI server I am working on is Bamboo (Atlassian), and all the choices I have been able to find are a Apache Maven plugin and some WebSphere plugin from Atlassian market place.
Would you give me any recommendations or best practices? Can you recommend any other plugin implementable on Bamboo?
Thanks in advance

Related

Headless eclipse managed by Jenkins to run OSGi application server

we would like to adapt our Jenkins CI roundtrip as it takes to long (late feedback).
The current flow looks like described below:
OSGi server bundles are checked out and build with ant.
the OSGi bundles are packaged to be used on linux distros.
a server is set up to install the above packages and to run HTTP interface tests (integration tests) against it.
We would like to get rid of creating the linux packages and to install a server with these packages as this consumes most of the time.
Instead we would like to execute the existing tests against a headless eclipse which is running the server (based on compiled jars or imported projects if possible) managed by Jenkins CI.
Now some questions:
Is it possible to run a headless eclipse within Jenkins (I think so as it is just executing a java application)?
Is it possible (and does it makes sense) to have an eclipse instance permanently running and to get used from more than one job? So we have to only update the jars/imported projects that have been changed ... or
do we have to extract eclipse and set it up each test run?
Is it possible to import projects within the headless eclipse or do we have to throw compiled jars into its installation?
Are there any other ways to get HTTP interface tests executed against a running server we are currently not thinking about?
Thanks a lot!

Eclipse configuration to support dual Equinox/Felix environments

What are some configuration changes to make Eclipse PDE best support working with both Equinox and Felix?
Here's an example problem I'm currently having. I can run my application ok via the Eclipse OSGi Framework launcher. Similarly, there are no compilation problems in PDE. However, when running in Felix I will get NoClassDefFoundErrors:
java.lang.NoClassDefFoundError: org/w3c/dom/DOMException
My understanding is it's my Eclipse setup that is at fault here; org.w3c.dom is not a 'default' OSGi package and shouldn't be loaded when I run it in Eclipse. Similarly, the import in my code for org.w3c.dom.DOMException should be an error.
I know how to fix this for Felix: declare an Import-Package. But that's not my question. My question is how to force Eclipse PDE to take on a closer configuration to Felix... basically to make it stricter in loading packages?
I think Equinox does behave like Felix, if you run it stand alone. It's more of an Eclipse legacy thing than an Equinox thing, as stated on osgi.org.
As far as I know, there isn't any way to override the boot delegation from Eclipse, but I'd love to be proven wrong, as I've faced this problem often.
If you are developing a server application I recommend to not use the PDE at all. I am using maven and the maven bundle plugin to develop my bundles. Then I deploy on Apache karaf. Debugging also is quite simple by using the karaf dev:watch command and remote debugging. I never really missed the PDE features and they never worked well with my maven build.
This sounds like that launcher is setting bootdelegation to legacy mode. See the following page on the OSGi Wiki: http://wiki.osgi.org/wiki/Why_does_Eclipse_find_javax.swing_but_not_Felix%3F

Eclipse EAR module publish log

I am using weblogic worshop to develop my spring based application. Basically it takes lot of time to publish the application to weblogic server. Is there any way to find out what’s going on when eclipse try to build and deploy the project? Basically does it maintain any log file?
Thanks ,
Manoj
Weblogic does a stupid thing according to my experience. If you deploy some WAR, it extracts the libraries in it, and does some analysis in them. You can avoid this behaviour by removing the "static" (not changed by you during work) libraries from the war during development. After removal, add them to system classpath of the domain. It will publish and start a lot faster.
You will find better support for developing Spring applications for WebLogic Server if you migrate to Oracle Enterprise Pack for Eclipse. Workshop is legacy software that is no longer being actively developed. Using Workshop is only necessary for those developing with the deprecated Apache Beehive framework.
http://www.oracle.com/technetwork/developer-tools/eclipse/overview/index.html
OEPE includes a much newer publisher implementation, so you may find your issue resolved. If not, please post to OEPE forum for direct access to people who can answer you question.
Cannot post a forum link, but you can find it from the above URL or via Google.
Thanks Konstantin and Gabor for replying to my question.
Konstantin - I am using Oracle Weblogic workshop 10.3 and I am restricted to use this IDE only.I guess it has OEPE correct me if I am wrong.Also I tried the FastSwap action but everytime I save the changes to a java file the server says -'Publish' and I have to republish the entire application which is taking lot of time.
Thanks,
Manoj

How to automate building and deploying a BPEL application

I need to automate the building and deployment of (several) BPEL applications to a weblogic server.
I now do it using jDeveloper 11g, but I guess there should be some command line tools to do it. (I come from a Microsoft /.NET / Visual Studio background, and I can automate the deployment of my .NET applications using the command line and msbuild)
Does anyone know how to do that via the command line?
I don't have any experience with BPEL on Oracle WebLogic but according to this documentation a BPEL application is packaged as a standard EAR. I don't know exactly how your sources are structured under JDeveloper but you best option here to automate the packaging and the deployment of this EAR is IMO to use Ant (or Maven but if all this is totally new for you I would recommend using Ant).
Maybe this tutorial can help you to get started for the packaging part (basically, how to use the ear task). And for the deployment, I suggest to use the wldeploy Ant task (which wraps the weblogic.Deployer utility). I've mentioned them in this recent answer.
Also have a look at this question, it seems that JDeveloper might have some support to achieve this task (but I have zero knowledge of it so I can't provide any guidance, JDeveloper is not really widely used).
I assume you are using Oracle SOA Suite 11g? If so, have a look at Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite, particularly the section 38.7 Deploying SOA Composite Applications and the subsection 38.7.5 Managing SOA Composite Applications with Scripts.
You may also find useful advice in the Oracle BPEL forums.

Maven build deployment

I have to manually deploy my servlet war packages on an Apache tomcat instance running on an AWS (Amazon Web Services) machine (remote server).
Also i have Maven setup for dependency management and build packaging in local development environment.
What I want is to setup my maven install/deploy task such that my packaged war files are deployed and configured(i.e executing specific shell scripts) on the remote server automatically.
Is it possible ?
If yes!!
How can it be done? (Please suggest relevant references.)
Thanks in advance
Ashish
Yes it is possible, you can use the cargo plugin to deploy to a server. See the Getting Started page for some examples.
If your scripts aren't catered for by the plugin, perhaps you could post some more details to see what options there are to address them.
If you are talking about Amazon's Elastic Computing Cloud (EC2), maybe you could check out cloudtools and its maven plugin (see the announcement on Chris Richardson's blog). Never tested myself though.
+1 for cargo plugin, I was not aware of that but could use it myself.
In case it helps you or someone else, you can run any script upon launch of an instance. This blog describes how.