Director, Software Strategy at Lockheed Martin
I'm the author of The Book of Kubernetes, published in 2022 by No Starch Press. I've worked for over 25 years as a software developer, lead, architect, and manager. I've delivered real applications to production in Ada, Java, Python, and Go, amongst others, and have led multiple software teams in modernization efforts, incorporating cloud, microservice architecture, and containerization on complex programs. I'm an Agile and DevSecOps coach and an experienced trainer for Java, Ansible, containers, software architecture, and Kubernetes.
Stats
Reputation: | 5296 |
Pageviews: | 1.3M |
Articles: | 32 |
Comments: | 56 |
Getting Started With Kubernetes
Persistent Container Storage
Cloud Native
Cloud native has been deeply entrenched in organizations for years now, yet it remains an evolving and innovative solution across the software development industry. Organizations rely on a cloud-centric state of development that allows their applications to remain resilient and scalable in this ever-changing landscape. Amidst market concerns, tool sprawl, and the increased need for cost optimization, there are few conversations more important today than those around cloud-native efficacy at organizations.Google Cloud breaks down "cloud native" into five primary pillars: containers and orchestration, microservices, DevOps, and CI/CD. For DZone's 2024 Cloud Native Trend Report, we further explored these pillars, focusing our research on learning how nuanced technology and methodologies are driving the vision for what cloud native means and entails today. The articles, contributed by experts in the DZone Community, bring the pillars into conversation via topics such as automating the cloud through orchestration and AI, using shift left to improve delivery and strengthen security, surviving observability challenges, and strategizing cost optimizations.
Kubernetes in the Enterprise
In 2022, Kubernetes has become a central component for containerized applications. And it is nowhere near its peak. In fact, based on our research, 94 percent of survey respondents believe that Kubernetes will be a bigger part of their system design over the next two to three years. With the expectations of Kubernetes becoming more entrenched into systems, what do the adoption and deployment methods look like compared to previous years?DZone's Kubernetes in the Enterprise Trend Report provides insights into how developers are leveraging Kubernetes in their organizations. It focuses on the evolution of Kubernetes beyond container orchestration, advancements in Kubernetes observability, Kubernetes in AI and ML, and more. Our goal for this Trend Report is to help inspire developers to leverage Kubernetes in their own organizations.
Comments
Sep 23, 2019 · Alan Hohn
No problem. https://github.com/AlanHohn/karaf-greeter
Aug 29, 2019 · James Sugrue
Unfortunately extra CPU usage is unavoidable with encryption. You might try finding a separate application to do the HTTPS termination, such as HAProxy, and see if it uses less CPU. That separate application can forward traffic to Jetty. But I doubt that would save much CPU.
Jan 21, 2018 · Alan Hohn
You certainly can test against your specific database as part of integration tests at the microservice or end-to-end test level. Or they can be part of a separate suite of unit tests (e.g. using DBUnit or similar tool) that aren't run as often. (For example, you might run your tests with mocks on every build, but your database integration tests only on the CI server.)
Of course, depending on your circumstances, you might decide that it's not too difficult to just use the real database for your unit tests, and not use mocking for this particular purpose. Remember that this is more of an educational example.
Your definition of the point of mocks is exactly right.
Jan 19, 2018 · Alan Hohn
It's an excellent question. With this kind of test, there are some things we are testing and some things we are not testing.
We are not testing the validity of the SQL statement created by our Code Under Test. We could test the validity of that (by being a little stricter in how we set up the mock) but that would make the test more brittle when we need to change the SQL statement in some way (e.g. for change in SQL dialect or for performance).
However, we are testing some important things. Since createAndRetrievePerson() performs a create first, then a retrieve, we're testing that on a create, all of the fields are being pulled from the object and put into the database, and that on a retrieve, all of the fields are being pulled from the database and put into the object. If we added a field to our Person object, added it to the test, but left it out of either create() or retrieve() in PersonDao, we would get a test failure.
So we're doing a decent job of testing the "object relational mapping" aspect of our DAO, which is worth something. And we can do it without needing a real database, not even an in-memory one, which means our tests are very easy to set up and are very fast.
If PersonDao was production code instead of an example, we would also check to make sure the right ID is being passed to the prepared statement on retrieve, that retrieving a non-existent object does what we expect, that our code does the right thing if it can't get a database connection, and a few other things. All those things can also be done using mocks.
It still wouldn't replace a test against a real database. But it would mean that our test against a real database could focus on whether we got the SQL right, which means that "real database" test would be simpler and could focus on the 'happy path' (because our mock test already hit things like failure to talk to the database, which can be hard to simulate reliably in the middle of an automated test).
Aug 08, 2017 · Arran Glen
I think the third code block (execute the alias) should be "dockviz images -t".
And unfortunately that echo command will clobber your ~/.bash_profile. I think you wanted to append with ">>".
May 16, 2017 · Alan Hohn
There doesn't appear to be a flag for Pyresttest to produce CSV, HTML, or a similar kind of output like JSON. Other than asking the author if it's something that can be added, the only other thing I can recommend is calling the relevant logic yourself from a Python program.
If you look at util/pyresttest within the source code, you can see it delegates to pyresttest/resttest.py. That file contains the logic for running the tests and printing the responses.
Jan 21, 2017 · Sibanjan Das
If I understand your two cases correctly, you about doubled the amount of data and it took about twice as long. That shows that it's O(n) but it still sounds I/O bound to me.
Jan 19, 2017 · Sibanjan Das
[Comment size limit]
Not that I'm trying to play the "my language is faster" game, since it would be easy to beat my code. The key here is that both of us are probably I/O bound. If there's an improvement in this code, it's that it doesn't wait until the end to write out each row.
If you go to a Spark version it will be important to make sure that there isn't a similar buffering step where you hold all the rows in memory (even for a partition of the rows in a parallel process) before writing them to disk.
Jan 19, 2017 · Sibanjan Das
Thanks for putting this together!
You probably were interested in using Scala for the sake of expanding knowledge of Scala, which is to be commended. You might also want to have Python in your toolbox for these kinds of "utility" programs. See what you think of this:
https://gist.github.com/AlanHohn/293c98f9dadfc67443b8078d843d4401
On my four-year-old i5 with 4 GB of RAM it took me under 2 minutes to run this code, with a 20GB network file copy going on in the background.
Oct 26, 2016 · Alan Hohn
Thanks!
May 23, 2016 · Grzegorz Ziemoński
P.S. It's worth saying again that I think the fault is with my piece for not being clear enough in what I was saying. Also, I invite everyone to read the comments from my piece, where people point out that another key reason why design patterns are good is shorthand communication, which is an excellent argument for Grzegorz's statement in favor of using pattern-specific naming.
May 23, 2016 · Grzegorz Ziemoński
[continued; silly DZone character limit]
4. Slavish adherence to the exact code from the GoF or other design patterns book will result in poor code, but recognizing and applying the pattern, even if the implementation looks different, will result in joy and happiness.
A "blueprint" is a document that must be followed exactly. So design patterns are good, but they are not blueprints.
May 23, 2016 · Grzegorz Ziemoński
It's pretty clear I didn't get across the point of my piece. Not surprising; I can be guilty of needless obscurity. Though I didn't say what you say I said.
Let me summarize my point, since I think we don't really disagree.
1. Design patterns are good.
2. A key reason why design patterns are good is that they present an approach to a set of similar problems.
3. This means that understanding design patterns can help you write good code even if the code you write doesn't look lilke the Official Canonical Version of the Design Pattern from the GoF book.
Oct 20, 2014 · Tony Thomas
That's a great point, thanks. Caliper had to run the "concatenation" test multiple times because it kept getting interrupted by GC.
Oct 20, 2014 · Tony Thomas
That's a great point, thanks. Caliper had to run the "concatenation" test multiple times because it kept getting interrupted by GC.
Oct 20, 2014 · Tony Thomas
That's a great point, thanks. Caliper had to run the "concatenation" test multiple times because it kept getting interrupted by GC.
Oct 20, 2014 · Tony Thomas
That's a great point, thanks. Caliper had to run the "concatenation" test multiple times because it kept getting interrupted by GC.
Oct 20, 2014 · James Sugrue
That's a great point, thanks. Caliper had to run the "concatenation" test multiple times because it kept getting interrupted by GC.
Oct 20, 2014 · James Sugrue
That's a great point, thanks. Caliper had to run the "concatenation" test multiple times because it kept getting interrupted by GC.
Oct 20, 2014 · James Sugrue
That's a great point, thanks. Caliper had to run the "concatenation" test multiple times because it kept getting interrupted by GC.
Oct 20, 2014 · James Sugrue
That's a great point, thanks. Caliper had to run the "concatenation" test multiple times because it kept getting interrupted by GC.
Oct 20, 2014 · James Sugrue
There's an example of that in my test class, and I measured it. It is indeed just as fast as if-then.
I just mentioned it in passing in the blog post; probably should have given it more play and shown a sample.
Oct 20, 2014 · James Sugrue
There's an example of that in my test class, and I measured it. It is indeed just as fast as if-then.
I just mentioned it in passing in the blog post; probably should have given it more play and shown a sample.
Oct 20, 2014 · James Sugrue
There's an example of that in my test class, and I measured it. It is indeed just as fast as if-then.
I just mentioned it in passing in the blog post; probably should have given it more play and shown a sample.
Oct 20, 2014 · Tony Thomas
There's an example of that in my test class, and I measured it. It is indeed just as fast as if-then.
I just mentioned it in passing in the blog post; probably should have given it more play and shown a sample.
Oct 20, 2014 · Tony Thomas
There's an example of that in my test class, and I measured it. It is indeed just as fast as if-then.
I just mentioned it in passing in the blog post; probably should have given it more play and shown a sample.
Oct 20, 2014 · Tony Thomas
There's an example of that in my test class, and I measured it. It is indeed just as fast as if-then.
I just mentioned it in passing in the blog post; probably should have given it more play and shown a sample.
Oct 20, 2014 · James Sugrue
Yes, the template's better if your API has it, and you can use it (not every value has a properly formatted toString()). Otherwise, if-else is way better from a numbers standpoint, though I agree it isn't the most attractive thing in the source.
Cheetahs have managed the perfect balance between beauty and speed. The rest of us have to work at that tradeoff.
Oct 20, 2014 · Tony Thomas
Yes, the template's better if your API has it, and you can use it (not every value has a properly formatted toString()). Otherwise, if-else is way better from a numbers standpoint, though I agree it isn't the most attractive thing in the source.
Cheetahs have managed the perfect balance between beauty and speed. The rest of us have to work at that tradeoff.
Oct 20, 2014 · Tony Thomas
Yes, the template's better if your API has it, and you can use it (not every value has a properly formatted toString()). Otherwise, if-else is way better from a numbers standpoint, though I agree it isn't the most attractive thing in the source.
Cheetahs have managed the perfect balance between beauty and speed. The rest of us have to work at that tradeoff.
Oct 20, 2014 · Tony Thomas
Yes, the template's better if your API has it, and you can use it (not every value has a properly formatted toString()). Otherwise, if-else is way better from a numbers standpoint, though I agree it isn't the most attractive thing in the source.
Cheetahs have managed the perfect balance between beauty and speed. The rest of us have to work at that tradeoff.
Oct 20, 2014 · James Sugrue
Yes, the template's better if your API has it, and you can use it (not every value has a properly formatted toString()). Otherwise, if-else is way better from a numbers standpoint, though I agree it isn't the most attractive thing in the source.
Cheetahs have managed the perfect balance between beauty and speed. The rest of us have to work at that tradeoff.
Oct 20, 2014 · James Sugrue
Yes, the template's better if your API has it, and you can use it (not every value has a properly formatted toString()). Otherwise, if-else is way better from a numbers standpoint, though I agree it isn't the most attractive thing in the source.
Cheetahs have managed the perfect balance between beauty and speed. The rest of us have to work at that tradeoff.
Oct 23, 2013 · Juozas Kaziukenas
Thanks, nice to hear. I may add a couple chapters related to how to undo things; like you say there are a huge number of possible scenarios.
If I could find a simple way to explain how to find detached commits, I'd definitely write that up. The times I've really messed myself up with Git and had to resort to extraordinary measures to get things back have all been related to detached commits or a detached HEAD.
Oct 23, 2013 · Juozas Kaziukenas
Thanks, nice to hear. I may add a couple chapters related to how to undo things; like you say there are a huge number of possible scenarios.
If I could find a simple way to explain how to find detached commits, I'd definitely write that up. The times I've really messed myself up with Git and had to resort to extraordinary measures to get things back have all been related to detached commits or a detached HEAD.
Oct 19, 2013 · Esther Schindler
Abhijeet,
Thanks for the kind words! I liked your post; it's clear that you're trying to think about the right way to do something. And these kinds of things are hard to get right.
The Javadocs for the Object class have a really good description of what rules should be followed when writing hashCode() and equals(). Where possible, hashcode() should be consistent with equals(). If two objects return true from equals(), they MUST return the same hashcode(). The rules are looser the other way, but if two objects return false from equals(), they should return different values from hashcode() where practical.
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
In your case, because you didn't make equals() return true for <A,B> and <B,A> you get two map entries. However, you're taking away a little bit of the efficiency of the map because they wind up in the same hash bucket and HashMap has to do some extra work to keep them separated.
The implementation for Google's Table and Apache's MultiKeyMap are probably way better and more efficient than mine. The MultiKeyMap appears to use XOR in its hashcode(). You can see it here:
http://code.ohloh.net/file?fid=uwUNbunte4axGKi7fSolSmyN3ks&cid=YB-GWSWTwck&s=&browser=Default&fp=310491&mp&projSelected=true#L244
XOR is commutative and associative, so what Apache is saying is that the keys can come in any order and they will be treated as the same. But their equals() method says something different! Those guys are smart, so I figure they assumed that the same keys in a different order was low-probability and a more efficient hash function was more important.
Anyway, I enjoyed your post and thinking about the questions you raised.
Oct 19, 2013 · Esther Schindler
Abhijeet,
Thanks for the kind words! I liked your post; it's clear that you're trying to think about the right way to do something. And these kinds of things are hard to get right.
The Javadocs for the Object class have a really good description of what rules should be followed when writing hashCode() and equals(). Where possible, hashcode() should be consistent with equals(). If two objects return true from equals(), they MUST return the same hashcode(). The rules are looser the other way, but if two objects return false from equals(), they should return different values from hashcode() where practical.
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
In your case, because you didn't make equals() return true for <A,B> and <B,A> you get two map entries. However, you're taking away a little bit of the efficiency of the map because they wind up in the same hash bucket and HashMap has to do some extra work to keep them separated.
The implementation for Google's Table and Apache's MultiKeyMap are probably way better and more efficient than mine. The MultiKeyMap appears to use XOR in its hashcode(). You can see it here:
http://code.ohloh.net/file?fid=uwUNbunte4axGKi7fSolSmyN3ks&cid=YB-GWSWTwck&s=&browser=Default&fp=310491&mp&projSelected=true#L244
XOR is commutative and associative, so what Apache is saying is that the keys can come in any order and they will be treated as the same. But their equals() method says something different! Those guys are smart, so I figure they assumed that the same keys in a different order was low-probability and a more efficient hash function was more important.
Anyway, I enjoyed your post and thinking about the questions you raised.
Oct 19, 2013 · Esther Schindler
Abhijeet,
Thanks for the kind words! I liked your post; it's clear that you're trying to think about the right way to do something. And these kinds of things are hard to get right.
The Javadocs for the Object class have a really good description of what rules should be followed when writing hashCode() and equals(). Where possible, hashcode() should be consistent with equals(). If two objects return true from equals(), they MUST return the same hashcode(). The rules are looser the other way, but if two objects return false from equals(), they should return different values from hashcode() where practical.
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
In your case, because you didn't make equals() return true for <A,B> and <B,A> you get two map entries. However, you're taking away a little bit of the efficiency of the map because they wind up in the same hash bucket and HashMap has to do some extra work to keep them separated.
The implementation for Google's Table and Apache's MultiKeyMap are probably way better and more efficient than mine. The MultiKeyMap appears to use XOR in its hashcode(). You can see it here:
http://code.ohloh.net/file?fid=uwUNbunte4axGKi7fSolSmyN3ks&cid=YB-GWSWTwck&s=&browser=Default&fp=310491&mp&projSelected=true#L244
XOR is commutative and associative, so what Apache is saying is that the keys can come in any order and they will be treated as the same. But their equals() method says something different! Those guys are smart, so I figure they assumed that the same keys in a different order was low-probability and a more efficient hash function was more important.
Anyway, I enjoyed your post and thinking about the questions you raised.
Oct 19, 2013 · Esther Schindler
Abhijeet,
Thanks for the kind words! I liked your post; it's clear that you're trying to think about the right way to do something. And these kinds of things are hard to get right.
The Javadocs for the Object class have a really good description of what rules should be followed when writing hashCode() and equals(). Where possible, hashcode() should be consistent with equals(). If two objects return true from equals(), they MUST return the same hashcode(). The rules are looser the other way, but if two objects return false from equals(), they should return different values from hashcode() where practical.
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
In your case, because you didn't make equals() return true for <A,B> and <B,A> you get two map entries. However, you're taking away a little bit of the efficiency of the map because they wind up in the same hash bucket and HashMap has to do some extra work to keep them separated.
The implementation for Google's Table and Apache's MultiKeyMap are probably way better and more efficient than mine. The MultiKeyMap appears to use XOR in its hashcode(). You can see it here:
http://code.ohloh.net/file?fid=uwUNbunte4axGKi7fSolSmyN3ks&cid=YB-GWSWTwck&s=&browser=Default&fp=310491&mp&projSelected=true#L244
XOR is commutative and associative, so what Apache is saying is that the keys can come in any order and they will be treated as the same. But their equals() method says something different! Those guys are smart, so I figure they assumed that the same keys in a different order was low-probability and a more efficient hash function was more important.
Anyway, I enjoyed your post and thinking about the questions you raised.
Oct 19, 2013 · Esther Schindler
Abhijeet,
Thanks for the kind words! I liked your post; it's clear that you're trying to think about the right way to do something. And these kinds of things are hard to get right.
The Javadocs for the Object class have a really good description of what rules should be followed when writing hashCode() and equals(). Where possible, hashcode() should be consistent with equals(). If two objects return true from equals(), they MUST return the same hashcode(). The rules are looser the other way, but if two objects return false from equals(), they should return different values from hashcode() where practical.
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
In your case, because you didn't make equals() return true for <A,B> and <B,A> you get two map entries. However, you're taking away a little bit of the efficiency of the map because they wind up in the same hash bucket and HashMap has to do some extra work to keep them separated.
The implementation for Google's Table and Apache's MultiKeyMap are probably way better and more efficient than mine. The MultiKeyMap appears to use XOR in its hashcode(). You can see it here:
http://code.ohloh.net/file?fid=uwUNbunte4axGKi7fSolSmyN3ks&cid=YB-GWSWTwck&s=&browser=Default&fp=310491&mp&projSelected=true#L244
XOR is commutative and associative, so what Apache is saying is that the keys can come in any order and they will be treated as the same. But their equals() method says something different! Those guys are smart, so I figure they assumed that the same keys in a different order was low-probability and a more efficient hash function was more important.
Anyway, I enjoyed your post and thinking about the questions you raised.
Oct 19, 2013 · Esther Schindler
Abhijeet,
Thanks for the kind words! I liked your post; it's clear that you're trying to think about the right way to do something. And these kinds of things are hard to get right.
The Javadocs for the Object class have a really good description of what rules should be followed when writing hashCode() and equals(). Where possible, hashcode() should be consistent with equals(). If two objects return true from equals(), they MUST return the same hashcode(). The rules are looser the other way, but if two objects return false from equals(), they should return different values from hashcode() where practical.
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
In your case, because you didn't make equals() return true for <A,B> and <B,A> you get two map entries. However, you're taking away a little bit of the efficiency of the map because they wind up in the same hash bucket and HashMap has to do some extra work to keep them separated.
The implementation for Google's Table and Apache's MultiKeyMap are probably way better and more efficient than mine. The MultiKeyMap appears to use XOR in its hashcode(). You can see it here:
http://code.ohloh.net/file?fid=uwUNbunte4axGKi7fSolSmyN3ks&cid=YB-GWSWTwck&s=&browser=Default&fp=310491&mp&projSelected=true#L244
XOR is commutative and associative, so what Apache is saying is that the keys can come in any order and they will be treated as the same. But their equals() method says something different! Those guys are smart, so I figure they assumed that the same keys in a different order was low-probability and a more efficient hash function was more important.
Anyway, I enjoyed your post and thinking about the questions you raised.
Oct 13, 2013 · Esther Schindler
Won't this return the same hashcode for <A,B> as it will for <B,A>?
I think you want something like the example from Joshua Bloch's Effective Java:
I also think there's something odd with your equals() method. If I read it right, it will consider (null,null) equal to any other key. Assuming you want to treat null as equal with itself, which is uncommon but desired in some cases, I suggest something more like this. I haven't tested it, so treat with caution.
Oct 09, 2013 · Mr B Loid
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · Mr B Loid
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · Mr B Loid
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · Mr B Loid
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · Mr B Loid
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · mitchp
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · Mr B Loid
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · Mr B Loid
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · mitchp
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · mitchp
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · mitchp
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · mitchp
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · mitchp
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.
Oct 09, 2013 · mitchp
Yep, exactly, thanks.
I've been lazy and been running it within Eclipse using Eclipse's Maven support, just running the main() in EmbeddedServer. I really ought to get Maven making an executable JAR that could be run anywhere - the idea is to be independent of jetty:run.