All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.iprogrammerr.bright.server.example.SimpleApplication Maven / Gradle / Ivy

package com.iprogrammerr.bright.server.example;

import java.util.ArrayList;
import java.util.List;

import com.iprogrammerr.bright.server.BrightServer;
import com.iprogrammerr.bright.server.Connection;
import com.iprogrammerr.bright.server.RequestResponseConnection;
import com.iprogrammerr.bright.server.Server;
import com.iprogrammerr.bright.server.application.HttpApplication;
import com.iprogrammerr.bright.server.cors.AllowAllPreflightCors;
import com.iprogrammerr.bright.server.filter.ConditionalFilter;
import com.iprogrammerr.bright.server.filter.PotentialFilter;
import com.iprogrammerr.bright.server.method.GetMethod;
import com.iprogrammerr.bright.server.method.PostMethod;
import com.iprogrammerr.bright.server.method.RequestMethod;
import com.iprogrammerr.bright.server.respondent.ConditionalRespondent;
import com.iprogrammerr.bright.server.respondent.PotentialRespondent;
import com.iprogrammerr.bright.server.rule.method.AnyRequestMethodRule;
import com.iprogrammerr.bright.server.rule.method.ListOfRequestMethodRule;

public final class SimpleApplication {

	public static void main(String[] args) throws Exception {
		RequestMethod get = new GetMethod();
		RequestMethod post = new PostMethod();

		List respondents = new ArrayList<>();
		ConditionalRespondent helloRespondent = new PotentialRespondent("hello/{id:int}", get, new HelloRespondent());
		ConditionalRespondent complexRespondent = new PotentialRespondent(
				"complex/{id:long}/search?message=string&scale=float", post, new ComplexUrlRespondent());
		respondents.add(helloRespondent);
		respondents.add(complexRespondent);

		List filters = new ArrayList<>();
		ConditionalFilter authorizationFilter = new PotentialFilter("*", new AnyRequestMethodRule(),
				new AuthorizationFilter());
		ConditionalFilter authorizationSecondFilter = new PotentialFilter(new ListOfRequestMethodRule(get, post),
				new AuthorizationSecondFreePassFilter(), "complex/", "hello/*");
		filters.add(authorizationFilter);
		filters.add(authorizationSecondFilter);

		Connection connection = new RequestResponseConnection(
				new HttpApplication(new AllowAllPreflightCors(), respondents, filters));
		Server server = new BrightServer(8080, 5000, connection);
		server.start();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy