- Install Plugin "Save Actions" within your IntelliJ
- Perform your settings within the "save actions" settings page
Technical tweaks, helpers, contradictions and a lot of blood sweet and tears are inside this blog.
Search This Blog
Wednesday, July 5, 2017
How to organize imports in Intellij when saving a file
I always forget this nice plugin. Do the following if you want your Intellij to organize imports or reformat code while saving a file
Wednesday, May 17, 2017
Where are the ear or war files stored in a jboss container?
I was searching where jboss stores an ear or war files once you deployed it via the cli cmd line. Here is my finding on that:
- The uploaded war or ear ist stored within a file called $jboss.server.base.dir/standalone/data/content/xx/xxyyyyyyyyy/content
- xx is a two char directory name within the default data folder
- yyyyyyyyyyy is a hash value of your ear or war
- You will find the xxyyyyyyy key as the sha1 value of your deployed ear or war within your standalone.xml config under the deployment section
Within the $jboss.server.base.dir/standalone/tmp you might find the cache of our currently running jboss. If you delete tmp after stopping jboss it will reinstall the ingredients from data. If you delete data you are screwed and you have to remove the ear or war entries from your standalone.xml or start jboss with --admin-only to redeploy the war or ears with the console.
Tuesday, March 7, 2017
Take care when using @Injectmocks
Well @Injectmocks is nice and evil in one tag. Assume we have this service
@Service public class SampleService { private final Logger LOG = Logger.getLogger(SampleService.class.getName()); @Autowired private SampleDependency1 dependency1; public Long sampleMethod() { LOG.info("Calling sampleMethod"); Long l = dependency1.calculateValue(); LOG.info("l = " + l); return l; } }and the corresponding test@RunWith(SpringRunner.class) @SpringBootTest public class InjectmocksApplicationTests { @Mock private SampleDependency1 dependency1; @InjectMocks private SampleService service = new SampleService(); @Test public void contextLoads() { when(dependency1.calculateValue()).thenReturn(null); final Long l = service.sampleMethod(); Assert.isNull(l, "well l should be null"); } }
Ok, should work and will call our service with the injected mock for dependency1. Now lets add a second dependency like this:
@Service public class SampleService { private final Logger LOG = Logger.getLogger(SampleService.class.getName()); @Autowired private SampleDependency1 dependency1; @Autowired private SampleDependency2 dependency2; public Long sampleMethod() { LOG.info("Calling sampleMethod"); Long l = dependency1.calculateValue(); l= dependency2.calculateValue(); LOG.info("l = " + l); return l; }This will compile, but running your test will result injava.lang.NullPointerException at net.kambrium.example.SampleService.sampleMethod(SampleService.java:23)because you forgot to add dependency2 to your test class. To avoid this do1. Use constructor wiring for your dependencies2. Use @InjectMocks wisely and go searching on your tests for usage of the service you change and adjust the test casesI personally prefer 1. as it always starts complaining at compile time. If your are using checkstyle you will see this warning, when using field injection:Spring Team recommends: "Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies"
Friday, February 10, 2017
Renew an Apple distribution certificate for dummies
Year after year you may need to refresh your distribution cert of your iOS app. These few steps are the short list, which should be done to renew an iOS Distribution Certificate for App Store distribution:
On any other machine you need to get access to the distribution profile including the private key to sign ios application. You need to export the distribution profile from the machine, which generates the profile as a p12 file. Just choose export within the key list and provide a password.
On the second machine you could then open the p12 file provide the password and that imports the dist cert including the private key into your local key store.
- Go to developer.apple.com -> Account -> Certificates
- Select Certificates->Production-> Add
- Choose App Store and Ad Hoc
- Open Keychain Access app and select Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority as stated in the developer website
- Fill out all values and don't forget to select "let me specify key pair information" this will ensure that a private key is specified in your generated cert
- Save the cert request
- Select continue and choose the saved cert request
- This will generate you new distribution cert
- Go to provisioning profile and select the one you're using to provision your app
- Change the used distribution cert to the one you newly generated
- Go back to xcode and refresh your certs within prefs->account
- Download the newly generated provisioning profile if not already done
On any other machine you need to get access to the distribution profile including the private key to sign ios application. You need to export the distribution profile from the machine, which generates the profile as a p12 file. Just choose export within the key list and provide a password.
On the second machine you could then open the p12 file provide the password and that imports the dist cert including the private key into your local key store.
Subscribe to:
Posts (Atom)