Skip to content

Instantly share code, notes, and snippets.

View bjpeterdelacruz's full-sized avatar

BJ Dela Cruz bjpeterdelacruz

View GitHub Profile
@bjpeterdelacruz
bjpeterdelacruz / drop_table.sql
Created April 26, 2018 00:02
How to generate DROP TABLE statements for tables that begin with a certain prefix
-- Generate DROP TABLE statements for tables that begin with "ap_form_"
SELECT CONCAT('DROP TABLE `', TABLE_NAME, '`;') AS queries
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'ap_form_%'
-- Sample output:
-- DROP TABLE `ap_form_10792`;
-- DROP TABLE `ap_form_10792_review`;
-- DROP TABLE `ap_form_11763`;
@bjpeterdelacruz
bjpeterdelacruz / WebUtilsTest.java
Last active April 25, 2018 23:33
How to mock static methods using PowerMockito
package com.bjpeter.sampleapp.utils;
import com.bjpeter.sampleapp.services.ServiceLoader;
import com.bjpeter.sampleapp.services.TextService;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
@bjpeterdelacruz
bjpeterdelacruz / WebUtils.java
Last active April 25, 2018 23:31
How to sanitize a URL to prevent open redirection
package com.bjpeter.sampleapp.utils;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.apache.commons.lang3.StringUtils;
public WebUtils() {
private WebUtils() {
}
public class Person {
private final int age;
public Person(int age) { this.age = age; }
@Override
public boolean equals(Object obj) {
return (obj instanceof Person) && this.age == ((Person) obj).age;
}
@bjpeterdelacruz
bjpeterdelacruz / AbstractPdfFactory.java
Last active January 13, 2018 06:55
How to set font size of field using iText 5
protected void setFirstNameField(AcroFields form) throws IOException, DocumentException {
// Set font size.
form.setFieldProperty("first_name", "textsize", 10f, null);
// Set font to use.
final BaseFont font = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.EMBEDDED);
form.setFieldProperty("first_name", "textfont", font, null);
// The font size must be set first before setting the value of the field.
form.setField("first_name", value);
form.setFieldProperty("first_name", "setfflags", PdfFormField.FF_READ_ONLY, null);
}
@bjpeterdelacruz
bjpeterdelacruz / AbstractPdfFactory.java
Last active January 11, 2018 22:45
Multiple Content Types
@RequestMapping(value = "pdf", headers = { "Accept=*/*",
"content-type=application/json,text/plain" }, method = RequestMethod.POST, produces = "application/pdf")
public ResponseEntity<byte[]> getPdf(@RequestBody Object object) {
Form form;
if (object instanceof Map) {
form = new ObjectMapper().convertValue(object, Form.class);
}
else {
try {
form = formService.getForm(Long.parseLong(object.toString()));
@bjpeterdelacruz
bjpeterdelacruz / PdfMailServiceImpl.java
Last active January 11, 2018 22:42
How to send an e-mail message with a PDF attachment and an inline image
private void send(String toAddress, String subject, String text, byte[] attachment) {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(mailHost);
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper msgHelper = new MimeMessageHelper(message, true);
msgHelper.setSubject(subject);
msgHelper.setFrom(fromAddress);
msgHelper.setTo(toAddress);
@bjpeterdelacruz
bjpeterdelacruz / java7fix.java
Created November 27, 2017 17:56
Java 7 Fix
// String.format("%1$#5s", book) does not throw an exception in Java 6,
// but it does in Java 7, so replace this code with a call to the method below,
// e.g. padWithZeroes(book, 5)
private static String padWithZeroes(String s, int length) {
if (s.length() >= length) {
return s;
}
int numZeroes = length - s.length();
StringBuffer buffer = new StringBuffer(numZeroes);
for (int count = 0; count < numZeroes; count++) {
@bjpeterdelacruz
bjpeterdelacruz / gist:5d7e9c9eda0f8bbaa0073dfa13536b99
Created October 8, 2017 21:42
Enable and disable dropdown with jQuery
<html>
<head>
<title>Enable and disable dropdown with jQuery</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
function enable_dropdown() {
jQuery("#items").removeAttr('disabled');
}
function disable_dropdown() {
jQuery("#items").attr('disabled', 'disabled');
@bjpeterdelacruz
bjpeterdelacruz / findAll_php5_vs_php7.php
Created November 23, 2016 20:31
Retrieving all documents from MongoDB database (PHP 5 vs. PHP 7)
// PHP 5
$m = new MongoClient();
$db = $m->test;
$collection = $db->todos;
$cursor = $collection->find();
foreach ($cursor as $document) {
echo $document["name"] . "\n";
}
// PHP 7