Can we integrate DOORS tool as a plugin to a java application? - java

I would like to integrate the DOORS tool(requirement gathering tool) into my java application.
My application is a standalone application built in java, Can I integrate DOORS tool as a plugin or any other way into my java application.

Domorans project DriveDOORS might be an approach for you. See https://github.com/domoran/DriveDOORS.
Generally, there is no other official way to communicate with DOORS other than starting DXL scripts and getting the results from these scripts, so for every solution you implement you will have to have a DOORS client installed that you communicate with.
Update: I stand corrected: you should be able to use OSLC, see https://www.ibm.com/developerworks/rational/library/oslc-services-rational-doors/index.html
MDconnect by Sodius was a 3rd party tool that helped here, but it seems to be discontinued. But you could ask sodius at https://www.sodiuswillert.com whether they still support it.
Also, with DOORS 9.2 there was a C API that might be usable with java as well, but this also seems to be discontinued, I could not find a later version than this:
http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/documentation/product_doc/DOORS/version_9-1/doors_api_manual.pdf
Hope this helps
Mike

Related

Creating a program to manage Amazon EC2 instances

I am attempting to create a program that can manage EC2 instances (create, stop, terminate). I am unfamiliar with the service, and after looking through documentation and searching the web have not found any general advice on creating a management service. My questions are:
What programming environment/language would best be suited to creating a management program?
How can this program interact with EC2 instances? (I've looked into AWS EC2 command line tools. Can these be used from a program to create/terminate instances?)
Any general advice in accomplishing this is appreciated (links to examples especially).
What programming environment/language would best be suited to creating a management program?
This question cannot be answered in a definite way, rather you should either choose the language you are most comfortable with or that's best suited to your environment/team instead - there are plenty to choose from, most popular major languages are covered by a dedicated SDK (currently Java, .NET, Node.js, Python, PHP, Ruby), see Tools for Amazon Web Services for the detailed listing and links to further information about each.
Please note that there are also two IDE Toolkits listed that might make it easier to get started if you happen to develop in Java or C#, specifically the AWS Toolkit for Eclipse and the AWS Toolkit for Microsoft Visual Studio.
How can this program interact with EC2 instances?
All the SDKs (and also the command line tools build on top of these) do use the AWS APIs to interact with the respective services (each one has a separate API, but most of them are structured very similar), see Documentation for a listing of all currently available services and links to their documentation:
Welcome to the Amazon Web Services (AWS) Documentation. Whether you are new to AWS or an advanced user, you can find useful information about the services ranging from introductions to advanced features.
To learn how you can get started with AWS, see our Getting Started with AWS guide. If you are interested in learning more about our AWS Free Usage Tier, see our AWS free usage tier article.
I guess you are new to the cloud and aws world, you can use AWS Command line tools to management the services. Also to make things pretty simpler you can make use of the readily available aws management console if you are only worry is to start, stop or terminate the instance. Also people have build some thing called Config management system like opscode chef which is built of ruby or you can use puppet built of puppet lab's custom DSL.
I am not sure if you really need a program to do that. The Amazon Management Console ( https://console.aws.amazon.com ) is pretty straight forward, simple to use, you can spin thousands of instances in a very short time. I created 20 instances in about 3 minutes and deleted(terminated) 9 during my first interaction with the technology. Would you provide a use case where this is necessary? Its like you want to create a missile to kill a chicken(rather than buy a knife)
HTH, Thanks,
Bles
I used to work on a project that deals a lot with EC2 and one of my responsibility was to manage instances remotly( deploy/start/stor/reboot). I used Java and the Amazon API to write a communication module for the application.
In addition I made a few general ant scripts to deal with code that has to be deploed into an instance. Kind a old fashion way, but works perfectly :)

JSP tools for a Ruby/Rails developer?

I am a full time rubyist, really enjoying rails, Sinatra, etc. Currently, however, I find myself working on a Java/TomCat/JSP project.
I was hoping someone could help me find tools, articles, books, and any other resources that will make me more comfortable?
I'm aware that Java is very different from Ruby, and the communities, likewise, are very different. That being said, all of the documentation around Java (that I have found) is a mess, and discovery is very difficult in this community.
Things I'm specifically looking for:
development environment setup tips
logger, logging, colorful output, best practice, etc
library resources and documentation
easy to navigate documentation for Java SE 6
anything you have found that makes your daily life better
Thanks!
If you are joining an existing Java project then you probably want to take a look at the tools already in use and get an existing developer / co-worker to bring you up to speed with them as a first port of call.
Having said that, here are my top tips:
Get comfortable with one of the main Java IDEs. Eclipse (my personal choice), Netbeans or IntelliJ are all excellent and very powerful tools once you get to know them. The refactoring / code navigation tools are probably better than anything you are used to in the Ruby world, they will help you a lot. Java is a lot less painful with a good IDE setup.
Learn Maven - this will take some time investment but it is extremely powerful for automating your dependency management and build process. Once you get it working you will save a huge amount of time on project / build management. Maven also provides automated access to the equivalent of Ruby gems through the various public Maven repositories.
And here are some particularly useful resources:
Java tutorials - good to get an introductory feel for the core Java libraries.
Java 6 API - useful as a reference resource for all the classes and functionality available in core Java (a lot of this is also provided via the IDEs)
JSP Documentation - for the JSP / Java EE aspects
As a little side note don't forget to learn about JSTL and Expression Language.
first of all you are on the right road to discover how elegant Java EE is. since you adressed various topics i will divide my answer into different parts :
Development environment:
Without further talk i will advise you to directly go and pick your eclipse Java EE Juno (last release) version, however if you'd like to have a look at other IDEs you can either check NetBeans 7.2 (last release) or IntelliJIDEA 11.2 Ultimate (last release i know of and that I have). Basically Eclipse has tons of plugins and features and backed up by a very great, large and passionate community.
[ i personally tried NetBeans, and IntellijIDEA, but felt more comfortable with Eclipse because of its look, features, cool color theme etc]
For JSP and HTML, CSS ,JS stuff, i however recommend the great IDE of Jetbrains Webstorm it has zen coding as well as many many other things like fast auto completion and support for many frameworks.
Lastly, pick up Sublime Text 2 as a text editor for quick edits or to just check a source file, it has a very beautiful layout and support for many languages as well as tons of plugins.
Ressources and documentations :
All the Java API specifications are available for offline viewing for free in Oracle's website and come packaged with the various SDK that are available there.
The easy to navigate documentation :
Eclipse IDE makes it very easy to attach JavaDoc and Source to the different jar files that make up a JDK, that said, your learning and coding experience will be greatly increased once you've set that up.So when you type Connection for example in IDE, you can simple hold Ctrl command then right click on it and the source code of the class implementation would be opened in a different tab. yes yes it's the power of the open source world :)
Concerning tips and tricks :
I'll recommend you use //TODO comments as Eclipse has support for them and you can setup your own TODO comments in settings, also you can use TASK comments, you've Mylyn too to manage your bugs, tasks either locally or connect to your favorite bug and issue tracker through a connector since many connectors are available for such purpose. Add to this list the possibility to configure bookmarks to help you manage your source files when they become full of lines.
About Tomcat:
Well if your goal is to make Java EE applications that do not require the advanced features of the Java EE specification, then you can use the sweet Tomcat, it's easy to use and configure and a well known web container.
However if that's not the case, and you wanna specialize in Java and spend lots of time to try to understand the ins and outs of this huge specification, you are likely to need a certified Application Server that supports all Java EE components. There are lot of them available, but since you asked for advise and I am here giving my modest suggestions I would advise you to pick the GlassFish Application Server, it's Open Source, and once you install it on Eclipse IDE for example, it will be bundled with both Java EE 5 and Java EE 6 API doc. This means no time to be wasted on browsing different tools and tabs, you will have everything grouped inside your Eclipse IDE so that you are 100% on the tasks at hand.
p.s: if you've any more questions please feel free to ping me.
Any good tip or trick :
Have fun with Java, because you will be learning everyday something new :)
p.s: i didn't mention any framework, because by the time you get used to Java EE you will be in position to pick the one that suits your needs. Also forgot to mention JUnit (Testing Framework) and a great eclipse plugin EClemma for code coverage (much better than Cobertura/eCobertura and easier to use), and of course you can try Maven as the other post mentioned, or try Apache Ant as build tool.
If you're coming from a Rails background, I'd be prepared for some initial frustration. Setting up projects in an IDE can be time consuming, and generally it's going to be more painful to get things like a basic web+app server up and running using Tomcat than using Ruby.
For a REPL, I would recommend Groovy (and indeed it comes pre-installed on Intellij) but you can also use BeanShell. Grails, or groovy on rails, is probably the closest thing we have to a Rails-like environment.
As others have said, with Java, using an IDE is really best. I like Intellij IDEA, but eclipse and NetBeans are also good.
For build and dependency management, Maven is probably as close as we have to standard, although I have heard nice things about Gradle.
There are entirely too many logging frameworks in java, use whatever your project currently uses, probably log4j or SLF4J. learn how to change log levels across the board, and also at a package level.
In terms of libraries, Google's Guava makes my life better on a daily basis.
The best "tips, tricks and general best practices" book on java is Josh Bloch's Effective Java. For documentation, the Javadoc is the authoritative source. Learn to read and write good javadocs.
For Test Driven Development, jUnit is probably the most widely used library, a very popular library is mockito, which also happens to be my favorite.

Can I use Ruby or Python library in Android Java application?

Let's say I want to write a poker app for Android.
It is fine to use APIs in Java. But when it comes to heavy usage of arrays, sets, combinations etc Java becomes a huge pain for me. It's much easier to code poker AI in Ruby/Python IMHO.
So the question: is there a way to use either Ruby or Python functions in Java Android Application? It should be packed in .apk of course.
UPDATE: Regarding Ruboto: As I understand from this link https://play.google.com/store/apps/details?id=org.ruboto.core&feature=more_from_developer#?t=W251bGwsMSwxLDEwMiwib3JnLnJ1Ym90by5jb3JlIl0. ruboto-core needs to be installed on device to run ruboto apps =( It's no good if I'm going to share my app on Google Play.
How about JRuby? It's an open-source implementation of Ruby on top of Java that lets you use the JDK libraries. You could embed a JRuby instance into your app and run your logic using that.
Also see Jython
Have you tried Ruboto?
It claims to run Ruby scripts in Android devices!
There's this that might help you though, scripting Layer for Android SL4A found here, Though am not sure exactly how you'd integrate it with Android SDK :)
Actually, on reading the wiki, in the FAQ and quote:
Can I use SL4A to write a real Android application or embed SL4A
scripts in my application? Yes! You can embed your script in a
(mostly) stand alone APK.
Here is python-for-android, which let you include a python distribution in your android application, the distribution could include module you want to use.

How can I create a .msi file for a Java program ? (eclipse)

I have a java project which I'm hoping to package and sell. How can I create a .msi file which will install my program on other windows computers?
If there are any tutorials, please direct me to them. I'm also using Eclipse if that has any bearing on how to create the .msi file.
Thanks
I've been using WiX extensively for creating MSI packages. It has quite a steep learning curve, but once you know what you're doing, it is very powerful. You said earlier that it needs Visual Studio installed, but I think it's just .NET 3.0, not the whole IDE.
I used this WiX tutorial when I got started, and it's got pretty much everything you need in there if you want to go down this route.
If you're after something simple, search for a tool called WixEdit on SourceForge. This has a GUI for building MSIs - it's not perfect, but pretty easy to use and produces professional results.
I'll repeat, WiX has a very steep learning curve, and if you're just after a simple way to package your application, NSIS might be easier; or, you could use the standard IExpress.exe tool built into Windows to create a self-extracting .exe (but they don't "feel" as good as an MSI).
There's nothing special about Java apps when it comes to creating MSI's other then you have to make sure you have a JVM/JRE installed just like you have to make sure the .NET framework is installed for .NET applications.
Your question is too broad to be able to answer. Implicit in your question is "What tool should I use?" and once that's decided "How do I make an MSI using this tool?"
For the first question, check out:
Windows Installer Authoring Tools for Developers
Use NSIS: http://nsis.sourceforge.net/Main_Page . It creates executable file that will do the same thing, and it is free.
If you specifically want to create an MSI package, and assuming you don't want to pay for something like InstallShield, look at Wix. http://wix.sourceforge.net/
I believe you want to look at Native Packaging, which according to this link was first introduced with JavaFX 2.2
https://netbeans.org/kb/docs/java/native_pkg.html
Since it seems to be official Netbeans docs, I imagine it is sanctioned by Oracle. Here is the counterpart for Mac for interested readers.
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html

Start coding in Java with NetBeans

There is a lot of information about Java around, but I don't understand how to setup everything.
I have a Mac. I heard the JDK comes with Macs. But is it the latest? How do I check that? Is it the J2SE or J2EE?
I want to create a web app. I installed NetBeans. When I choose create project there is a list of Java options. There is Java/Java EE/Java FX/Java Web. Which one should i choose? and afterwards, what is what? What is War?
I want to find a good tutorial/ebook explaining all these Java terms and how to setup Java/Java Server(Glassfish/Tomcat) on a Mac and with NetBeans to code a web app? A good one!
The netbeans tutorials can be found here: http://netbeans.org/kb/trails/java-se.html
To start off, just make a plain Java project. The other types all probably include different plugins or libraries that you won't need right away. A WAR is an archive of Java classes and other files that constitutes a web application.
The default version of the JDK that you have on your Mac should be fine, but if you want to upgrade or mess around with any other Java preferences, OS X offers all that for you. Apple has a good tutorial here: http://developer.apple.com/java/faq/
Edit: Ok, if you want to make a web app then the first step is to learn how a Java web app is organized. That will make your life much easier. Java EE is mostly a buzzword (IMO) and it refers to a specific set of libraries. It's not important to know what's officially considered Java EE and what isn't. To learn about what a Java web app looks like, the best place is the Tomcat manual. Read this section, then make a WAR project in Netbeans and you should have a good start. Don't try to bite off too much at first, just make a Hello, World! app.
An excellent resource for learning Java development is Java Passion.
There you can learn basic Java development, and the Java EE tutorials will also get you started developing web applications.
Here are some links on how to setup Tomcat / Glassfish for Mac OS X.
Tomcat on OS X
Glassfish on OS X
Trying to go straight into Java Enterprise Development is going to be too steep a learning curve unless you already know Java. Take a step back, and start going through some Java Tutorials.
It will likely be a while before you can tackle Java EE (it can be a monster).

Categories

Resources