Skip to content

Instantly share code, notes, and snippets.

package iais.spark_dataset;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
@ehabqadah
ehabqadah / App.java
Last active May 10, 2017 11:26
Update a column of DataFrame in Spark, replacing the entire column with new values after applying certain function on old values e.g., MD5
package iais.spark_dataset;
import static org.apache.spark.sql.functions.*;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
@ehabqadah
ehabqadah / gist:467fde76a0b3d556dc8046be3a0643ca
Created July 14, 2017 04:19 — forked from reiz/gist:d67512deee814705134e
Vagrantfile for a Java dev. environment with Oracle Java 8 and Eclipse.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider "virtualbox" do |vb|
vb.gui = true
@ehabqadah
ehabqadah / SlackApiClient.java
Last active February 16, 2024 10:32
Spring boot java slack API client to send messages and reply to it (thread) with retries
package com.qadah.slack;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.http.HttpEntity;
/**
* @author Ehab Qadah
*/
@RestController
@RequestMapping(path = {"/api/v1/orders"}, produces = APPLICATION_JSON_VALUE)
public class OrderController {
private static final Logger logger =
LoggerFactory.getLogger(OrderController.class);
/**
* <p> Root entity for object persistence via JPA.</p>
*
* @author Ehab Qadah
*/
@MappedSuperclass
public abstract class BaseEntity {
@Id
@GeneratedValue(generator = "custom-generator",
/**
* A custom Id generator based on combination of long time hex string and UUID
*
* @author Ehab Qadah
*/
public class BaseIdentifierGenerator extends UUIDGenerator {
private static final int NUMBER_OF_CHARS_IN_ID_PART = -5;
@Override
/**
* * Handle all exceptions and java bean validation errors
* for all endpoints income data that use the @Valid annotation
*
* @author Ehab Qadah
*/
@ControllerAdvice
public class GeneralExceptionHandler extends ResponseEntityExceptionHandler {
public static final String ACCESS_DENIED = "Access denied!";
/**
* Incoming DTO to create a new record of {@link com.qadah.demo.data.model.Order}
*
* @author Ehab Qadah
*/
public class OrderIncomingDto {
@JsonProperty(required = true)
@NotEmpty
@NotBlank