What is a good open source Java SE JTA TransactionManager implementation? [closed] - jta

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Basically, what it says on the tin; I need a JTA implementation useable in a Java SE application, ideally one that doesn't carry too much of a framework burden with it.

I recommend Bitronix. Before using any other transaction manager, I recommend thorough testing. Tests like killing power to various machines during each phase of the transaction. You want transactionality to protect you when failures occur. It is surprising how many transaction managers have failed to correctly implement recovery.
Bitronix does need JNDI, which is typically provided for you in a Java EE container, but they include a simple embedded implementation that will support Bitronix in a Java SE application.

From its webpage:
"With over 20 years of expertise in the area of transaction processing,
JBoss Transactions (JBossTS) is the premier open source transaction manager.
It can be deployed within a range of application servers, containers or run stand-alone. Over the past 20 years it has been used extensively within industry and to drive standards including the OMG and Web Services."

Try Atomikos TransactionsEssentials.
Atomikos is the inventor of "Java EE without Application Server", so if any open source JTA/XA does well in Java SE then it must be TransactionsEssentials: it was designed for Java SE right from the start, and includes JDBC and JMS connectors/pools so you don't need any application server functionality.
Because of its Java SE focus, TransactionsEssentials also has very few dependencies on third-party jars or platforms.
Best
Guy
Disclaimer: I work for Atomikos, but still...

Quote from http://jotm.ow2.org/
JOTM is an open source Transaction Manager implemented in Java.
It supports several transaction models and specifications providing transaction support for clients using a wide range of middleware platforms (J2EE, CORBA, Web Services, OSGi).
JOTM is hosted by the OW2 consortium. The license used by JOTM is BSD-style License.
This implementation is fully functional and mature since it has been used for several years in the JOnAS application server project.

You can try SimpleJTA: -- http://simplejta.sourceforge.net/

Related

Which testing tools and approaches support 12 factor app [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
To follow the 12 factor app in my (Java) microservice development, I want to construct my testing infrastructure to
be conform to the 12 factor app
test/push the system under test towards the 12 factor app.
What are good test harnesses (tools and approaches) for this?
Details:
To have effective microservices, I want to follow the 12 factor app. To find as many bugs as possible, I want a test harness that is effective for 12 factor microservices -- mine is not.
For instance, when I am developing microservices, I often introduce bugs that are not caught by my unit tests -- cannot be caught since they do not occur in local logic but in plumbing, i.e. only when putting together many pieces (Java code, Javascript code, Helm chart, Docker file, environment variables). Thus I want to strengthen my coarse-grained tests (integration, component and acceptance/end-to-end tests), which leads me to multiple questions related to the 12 factor app, e.g.
should I have more coarse-grained tests that run directly in the production environment?
Which parts can I mock in my integration and component tests without breaking dev/prod parity?
How can I test that my system under test follow the 12 factor app?
I have found a lot of tools and material for testing (Java) microservices, e.g.
The book Testing Java Microservices
https://martinfowler.com/articles/microservice-testing/
How do I write useful unit tests for a mostly service-oriented app?
http://arquillian.org/
https://github.com/SpectoLabs/hoverfly-java
https://github.com/rest-assured/rest-assured
https://github.com/DiUS/pact-jvm
https://www.testcontainers.org/
Unfortunately, none of them give advice on the 12 factor app -- it isn't even mentioned. Hence any advice on testing approaches that support the 12 factor app is appreciated!
In my experience, the problem is the "shitty" difference between unit-tests and integration-tests.
There are in-betweens, imhO you should design your tests to check the complete service-functionality as it is defined by the contract, by simulating,mocking the services it consumes and calling it at the interfaces it provides. To do that you need a framework like springunit, cdi-unit, ioc-unit or arquillian.
Testing only single (or a few) classes of the service and mocking the rest exposes too much internals of the code to the testcode which prevents refactoring and also often leads to tests which just copy the businesslogic somewhat so they don't really test the functionality.

Server & API load testing [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I have custom API included in a website which creates new UID on new unique user visit like Google Analytics and sends the UID data to the backend server(NodeJs) for computation.
I need to check concurrent users and max the limit of users can be created/handled per current cloud config.
Also, need to check, is there any limit on API creating and sending users data. The API is on CDN(fastly)
Please suggest some testing tools, to check for above scenario.
SoapUI is a kind of standard for web services functional testing, it has also certain load testing capabilities
Web Services are basically JSON or SOAP over HTTP so any tool which supports HTTP protocol will suit. Here you can find the list of free and open source load testing tools. Narrowed down to the most powerful ones it will look like:
Grinder
Gatling
Apache JMeter
Tsung
Check out Open Source Load Testing Tools: Which One Should You Use? article for the main features comparison, sample scripts and reports.
I agree with Dmitry that those four (Grinder/Gatling/Tsung/Jmeter) are good tools, with a lot of functionality, but they are also fairly complex, require dependencies and can be somewhat painful to get started with. It all depends on your requirements which tool is best for you.
It sounds to me like you want to test one or two REST API end points powered by NodeJS. If you want a simple-to-get-started with tool that can be scripted, there are some good command-line tools available:
Wrk - very fast, scriptable in Lua
Artillery - NodeJS-based, scriptable in JS
k6 - our own newly released tool, currently the fastest tool scriptable in JS
There is also Locust which is scriptable in Python, but very low-performing.
I like these tools because they offer simple command-line usage and can be scripted in a real language, as opposed to Jmeter and Tsung, where you'll have to resort to XML if you want to do something slightly out of the ordinary. Gatling is a bit better, offering a DSL based on Scala classes where you can do most things but it is still not "real" Scala. The Grinder is the only one of those other tools that offers true scripting (in Jython), but again, it is not a simple one-line command to get started.

What feature is missing in the current Platform as a Service? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I have a project which is to make a "Platform as a Service" environment like Heroku, GAE or dotCloud to name a few.
One of the recurring questions I ask is "What feature is missing in the current platforms ?"
Currently most platforms allow developers to deploy their applications (PHP / Python / RoR / JAVA / ...) and manage them by a SDK, a console or an IDE plugin.
A few allow some features like :
- online IDE,
- custom domains,
- management of addons,
- logs system,
- cron tasks,
- collaborative aspect,
- ...
According to you what is your favorite feature in the current PaaS or, if it does't exist, what would you see in this type of service ?
Thank you for your explanations and your help.
Nico (French developper - hence my spelling mistakes ^^)
One of the main problems still not solved in cloud is the security. Every application should have data associated with that. With cloud where to store data? is it secure? can the owners of the system prepare it when some problem happens? ..
Another part is auto scaling. Can the users deploy their application and platform takes care of auto scaling load balancing etc ..
Versioning can the platform support different versions at once.
I think the main feature that is missing in all PaaS platforms is that they are scaling by duplication rather than parallelization. In order to scale, common platforms duplicate a worker, a service or an application and then re-aggregate this by deploying a (virtual) load balancer in front of it. Thus, the units of scale are relatively inelastic blocks (a block could also be a VM).
The ideal way of scaling should be smaller units though e.g.. threads, processes. This way scaling would leave this legacy approach towards a real elastic paradigm.
By the way: this way also the multicore-challenge could be addressed. When you have a system with 100s of cores, then probably the sole way for an application to scale is by thread or process that can be distributed over the available cores. Not by duplicating and deploying legacy load balancers.

What are good tools for using Model Driven Development with Embedded work? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I believe there has been some up-take of model-driven development / engineering (aka OMGs model driven architecture) in the real-time and embedded software development sectors. What tools and tool vendors have people had experience with?
Google gives me lots of academic papers and a vendor or two (IBMs Rational Rose Technical Developer and VisSim).
Additionally, any information on model format (UML?), target languages/environments for the platform specific models (C? RTOSs?), and testing (logic-based?) would be greatly appreciated.
We have used Enterprise Architect and IBM Software - Rational Rhapsody. We have used the build in code generation engine and our own code generation engine that generate code suitable to Do178B qualification. With Rational Rhapsody we targeted VX Works as well as our own OS. These tools uses UML models. Since it generates code you can do unit testing with what ever you used to tools that provide integration into these tools.
Scade is also a option if you write safety critical software. Some of the other divisions in our company has used this successfully. It is very logic orientated so it is not able to do everything but it can generate up to 70% of the code for some projects. Using a qualified tool eliminates most of the testing. It has an model verification tool and if the model is correct then code is correct. It integrates in requirement and configuration management tools.
For non safety critical development by experienced developers it is difficult to say if using model driven development will provide you with any saving. It is worth trying, as technology matures and more developers get used to model based development, we will see a lot more of this in the embedded environment.
I have used MS Visio for drawings only; no code generation. Just starting to look at Enterprise Architect, and this is looking promising.
Others in our company have used Simulink/Stateflow for design modelling in an automotive environment. Not for auto code generation I think, but for running the model on the PC.
NI LabVIEW is another possibility. We've only used it in a PC-based automated testing system, but it can also be used for model-based design.
Both these systems can generate code, but we don't have much experience with that so far. Even without using code generation, model-based design has several advantages to help the high-level and mid-level design process and design documentation. Code generation is something we could consider in future.
If you want to model a state machine you could do worse than try visualState from IAR Systems (the embedded compiler company).

What are the elements of a team development suite? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
For small-to-large teams developing software together, what tools are used to form a comprehensive team development framework?
Specifically, I'm looking for a comprehensive list of all the individual functions involved (e.g. source control, bug management, testing tools, project management), not specific product recommendations. I'm also not restricting the list to a particular methodology (e.g. Scrum).
Source control (obviously) including branch management
Issue tracking (features and bugs), possibly with task reassignment and forwarding, and often things like screen recording
Individual task management, sometimes integrated with the issue tracking system
Communication software. Some teams use emails and IMs even within the same building or tweets. There are some tools that integrated within the code so you could "chat around a piece of code". Screen and application sharing are also useful.
Good build tool.
Distributed pair programming tools if applicable, shared editors otherwise.
Similar support in case tools.
Less commonly used but promising tools (from academic background), some now have IDE based versions.
Real-time awareness (prevent nerge conflicts by letting you know somebody is working on the same file before you actually write code)
In-code social tagging, useful for bootmarking specific items
In-code contract communication tools (e.g., make a caller aware of special expectations in the invoked method as a way of avoiding errors).
You've hit the major ones in your post:
IDE (Integrated Development Environment)
Coding Guidelines (sometimes looked over, but it still helps tremendously)
Source Control
Testing Suite (Unit Testing, Test Case/Test Script Management and Tracking)
Issue Tracking/Bug Reporting
Build Management
...I'm sure I'm missing something obvious, but somebody around here will correct me.
And the one I missed...
Diagraming software (I.E. Rational Software Modeler, etc.)
A few more:
Requirements management software
Code review software
Continuous integration tool
Documentation repository - e.g. Wiki