Giter VIP home page Giter VIP logo

ffead-cpp's Introduction

README

Framework for Enterprise application development in C++ 
Sumeet Chhetri
21-04-2012

FEATURES
1. Easy to use View Framework
2. SSL Support available
3. Web Server (Multi process, Multi Threaded EPOLL/Kqueue/Event Ports/Devpoll/Poll/Select based)
4. Inbuilt Authentication handlers and OAUTH support
5. Configuration driven URL mapping
6. Dependency Injection (constructor and setter injection)
7. ORM library (currently implemented for MySQL, Integrated with STL, Table mappings through configuration files, One - Many, Many - Many ,One - One. The ORM Can be easily extended to other Databases).
8. SOAP Integration (Web Service implementation through configuration file - Methods in a C++ header file exposed as Web-Services)
9. REST Controller framework (pretty URL's)
10. AJAX Integration (Using property based configuration - On the lines of DWR for Java - Just define C++ header files and Methods will be exposed as AJAX calls)
11. EJB styled Beans (Remote and Local Interfaces exposed -> C++ files have the services, and the methods to be exposed are defined in a configuration file)
12. Universal Object type for C++ (intelligent pointer - no need of extending any class - identifies the object type)
13. Binary, XML and JSON based Serialization
14. Reflection (Limited - header files required)
15. Dynamic C++ Pages (Mix HTML and C++ code to produce run time views without web server restart)
16. Template Engine and Dynamic Views generated from C++ objects.
17. Controller Pattern (Implement controllers mapped with URL patterns to define custom behaviors)
18. Request/Response Filters (Implement a chain of custom Filters for Pre/Post processing of request/response)
19. Thread Pool Implementation with Futures
20. Bigint and Bigdecimal classes for arithmetic operations on big numbers
21. C++ Interpreter (Limited support)
22. Rule based WEB Behavior(idea can be expanded to other areas application wide)
23. XML Parser (DOM Styled)
24. Database Connection Pooling
25. Internationalization support
26. Utilities such as Timer, Logging, Property Files etc.
27. File Upload
28. FTP Server
29. Security features for Method access (Web Services, AJAX calls, C++ Bean service calls, Server URL’s)
30. Module for Integration of the framework with Apache Web Server
31. Method Invoker Server for cross platform Method Invocation (A daemon per language/platform approach – XML based Serialization/De- Serialization)

Release Notes version 1.9
==================================
	:- Fix for the socket select issue (when number of connections increases 64)
	:- Added support for autotools build system
	:- The intermediate libraries (libinter/libdinter) can also be built at run-time using ./configure/make

Release Notes version 1.8
==================================
	:- CORS Filter support for corss origin resource sharing
	:- Changes to XML/JSON/Binary Serialization
	:- Moved common code to a new SerializeBase? class
	:- Modified the AMEF Protocol classes for better binary serialization support
	:- Added support for handling namespaces and nested classes in Reflection
	:- Fixed the Date/DateFormat? classes for all issues related to parsing/formatting/updating dates
	:- Added new Multipartcontent object for handling multipart requests
	:- Added gzip/deflate compression for responses
	:- Added chunked transfer encoding support
	:- Added Last Modified/If-Modified-Since header based cache support
	:- Moved request/response headers to a map instead of properties
	:- Fixed the HttpResponseParser? class
	:- Fixed the JSONUtil class for error in json parsing
	:- Introduced a new LoggerFactory? class to handle multiple loggers, fixed the Logger class
	:- Introduced Futures based Thread pooling support
	:- Fixed various web service issues/problems
	:- Introduced JobScheduler? class for job scheduling
	:- Added a new CronTimer? class for handling cron times
	:- Introduced stream based single/multi File upload support in Rest Controllers
	:- Added a few new html pages for testing/sanity
	:- Fixed the accpetance test related files
	:- Added a couple of new classes in the default app for testing new features
	:- Fixed the afc.js file to resolve existing issues
	:- Fixed an existing issue with namespace handling within the Element class
	:- Introduced new properties for connection keep-alive, transfer encoding chunk size, default content encoding method, max number of input headers and max file upload size to the server.prop config file
	:- Changed the web-service related template files for better web service support

REQUIREMENTS
1. Any box that runs linux, BSD, Solaris or Windows/Cygwin or any other OS(using autotools)
2. Boost is no longer required as of version 1.7
3. UnixODBC and development files
4. OpenSSl and development files
5. (GNU C++ compiler, GNU make) or Autotools(autoconf/automake/libtool/c++ compiler)


INSTALL
Autotools/Any OS
Refer to the AUTOTOOLS-ANY-OS-INSTALL for generic installation directions.

Unix
Refer the UNIX-INSTALL-WITH-GNU-MAKE file for installation directions.

BSD
Refer the FREEBSD-INSTALL-WITH-GNU-MAKE file for installation directions.

Windows/Cygwin
Refer the WINDOWS-CYGWIN-INSTALL-WITH-GNU-MAKE file for installation direction on Windows platform having Cygwin installed

Solaris
Refer the SOLARIS-INSTALL-WITH-GNU-MAKE file for installation directions.

UPDATES
Find latest and older versions on 
Google Code - http://code.google.com/p/ffead-cpp
Github - https://github.com/sumeetchhetri/ffead-cpp


Copyright © 2014 Sumeet Chhetri

ffead-cpp's People

Watchers

 avatar

ffead-cpp's Issues

Failed to compile apache_mod_ffead module for my ubuntu 12.04 LTS Linux System

What steps will reproduce the problem?
1. compile and install apache web server successfully for my Linux System 
Ubuntu 12.04 LTS.

2. Then compile ffead-server-src-v1.8 source package successfully without any 
issue in my system.

3. After that I have started to compile apache_mod_ffead module for my system 
which gets failed to compile.

What is the expected output? What do you see instead?

Apache module compilation process has been closed due to some error.
make: *** [mod_ffeadcpp.o] Error 1

What version of the product are you using? On what operating system?

ffead-server-src-v1.8 and apache 2.4.9 installed in Ubuntu 12.04 LTS and tried 
to compile apache_mod_ffead module for same.

Please provide any additional information below.

Please find following list of errors for more reference.

1) 
ffead/ffead-server-src-v1.8/Debug/ffead-server/include/ConfigurationData.h:113:2
: error: ‘ConfigurationData::ConfigurationData()’ is private

2) ffead/ffead-server-src-v1.8/Debug/ffead-server/include/SSLHandler.h:40:2: 
error: ‘SSLHandler::SSLHandler()’ is private

3) FfeadCppApacheModule.cpp:155:59: error: no matching function for call to 
‘ServiceTask::ServiceTask(int, std::string&, NULL, bool&, NULL, SSLHandler&, 
ConfigurationData&, void*&)’

4) FfeadCppApacheModule.cpp:321:8: error: ‘class HttpRequest’ has no member 
named ‘setHttpVersion’

5) FfeadCppApacheModule.cpp:337:14: error: ‘class HttpResponse’ has no 
member named ‘getContent_type’

6) FfeadCppApacheModule.cpp:339:30: error: ‘class HttpResponse’ has no 
member named ‘getContent_type’

7) FfeadCppApacheModule.cpp:341:14: error: ‘class HttpResponse’ has no 
member named ‘getContent_str’

8) FfeadCppApacheModule.cpp:343:27: error: ‘class HttpResponse’ has no 
member named ‘getContent_str’

9) FfeadCppApacheModule.cpp:373:2: error: ‘init’ is not a member of 
‘Logger’

10) FfeadCppApacheModule.cpp:374:11: error: ‘getLogger’ is not a member of 
‘Logger’

11) FfeadCppApacheModule.cpp:386:121: error: no matching function for call to 
‘ConfigurationHandler::handle(strVec&, strVec&, std::string&, std::string&, 
std::string&, std::string&, bool&)’

12) FfeadCppApacheModule.cpp:430:62: error: no matching function for call to 
‘ScriptHandler::execute(std::string&, std::vector<std::basic_string<char> >&, 
std::string&)’

Please let me know if you need any more information and help me to solve above 
problems.

Original issue reported on code.google.com by [email protected] on 5 Aug 2014 at 4:48

Windows : only Index page comes. Not getting any response from server

Hello Summet,

I followed the instruction you mentioned for install ffead on windows 
environment.

Default page if index.html came successfully. But nothing else work.

I tried to use RestController example , it did not work either even I added new 
users in user file. it goes to login page , I entered user and then came back 
to Index.html. 

Am I doing something wrong here? How to test other default examples mentioned 
by you in wiki ?

Many thanks for your wonderful application. 

Thanks and Regards
Abhishek Kumar

Original issue reported on code.google.com by [email protected] on 16 Aug 2012 at 10:52

serverRootDirectory becomes invalid after requesting index.html page from web browser with apache_ffead_cpp module loaded

What steps will reproduce the problem?
1. Compile and install Apache Web Server 2.4.9 in my Ubuntu 12.04 LTS system

2. Compile ffead package 1.9 with apache_mod_ffeadcpp module using help of 
INSTALL and other User Guide.

3. Started httpd process and see that apache_mod_ffeadcpp module is loaded 
successfully but connection goes into reset state after requesting default 
index.html page from web browser.

"http://<<Server IP>>/ffead-server/web/default/index.html"

What is the expected output? What do you see instead?

I have tried to debug from apache module source code and found that 
"serverRootDirectory" and "webpath URL" becomes invalid after requesting 
index.html page.

Also that "serverRootDirectory" is valid after starting httpd process but 
before calling HTTP request.

What version of the product are you using? On what operating system?


Please provide any additional information below.

This is valid serverRootDirectory path 
"/usr/local/apache2/htdocs/ffead-server/" after starting httpd process and 
before calling HTTP request with default index.html page.

Then serverRootDirectory path becomes invalid 
"/usr/local/apache2/htdocs/ffead-server//usr/local/apache2/htdocs/ffead-server/"
 and also webpath URL 
"URL/usr/local/apache2/htdocs/ffead-server//usr/local/apache2/htdocs/ffead-serve
r/web//ffead-server/web/default/index.html" after calling HTTP request with 
default index.html page.

Also connection goes into reset state and one of child httpd process killed 
after that.

[core:notice] [pid 13260:tid 3075201344] AH00051: child pid 13261 exit signal 
Aborted (6), possible coredump in /usr/local/apache2

Please let me know if you have any idea about this issue.

Original issue reported on code.google.com by [email protected] on 6 Aug 2014 at 12:19

Building libinter.so

What steps will reproduce the problem?
1. Building the Library libinter.so manually because the ffead-logs telling me 
it is missing (auto-generation also fails)

What is the expected output? What do you see instead?
Building file: ReflectorInterface.cpp
Invoking: GCC C++ Compiler
g++ -I/data/work1/gui/ffead/src/Debug/ffead-server/web/default/include/ 
-I/data/work1/gui/ffead/src/Debug/ffead-server/web/flexApp/include/ 
-I/data/work1/gui/ffead/src/Debug/ffead-server/web/oauthApp/include/ 
-I/data/work1/gui/ffead/src/Debug/ffead-server/web/rest2cobol/include/  
-I../include -O0 -Wall -c -fmessage-length=0 -fPIC -MMD -MP 
-MF"ReflectorInterface.d" -MT"ReflectorInterface.d" -o"ReflectorInterface.o" 
"ReflectorInterface.cpp"
ReflectorInterface.cpp: In function »ClassInfo 
getReflectionCIForDefaultRestController()«:
ReflectorInterface.cpp:1840: Fehler: redefinition of »ClassInfo 
getReflectionCIForDefaultRestController()«
ReflectorInterface.cpp:243: Fehler: »ClassInfo 
getReflectionCIForDefaultRestController()« wurde vorher hier definiert
ReflectorInterface.cpp: In function »void 
invokeAdToVecForDefaultRestController(void*, void*)«:
ReflectorInterface.cpp:1884: Fehler: redefinition of »void 
invokeAdToVecForDefaultRestController(void*, void*)«
ReflectorInterface.cpp:287: Fehler: »void 
invokeAdToVecForDefaultRestController(void*, void*)« wurde vorher hier 
definiert
ReflectorInterface.cpp: In function »void* 
invokeGetNewVecForDefaultRestController()«:
ReflectorInterface.cpp:1885: Fehler: redefinition of »void* 
invokeGetNewVecForDefaultRestController()«
ReflectorInterface.cpp:288: Fehler: »void* 
invokeGetNewVecForDefaultRestController()« wurde vorher hier definiert
ReflectorInterface.cpp: In function »int 
invokeGetVecSizeForDefaultRestController(void*)«:
ReflectorInterface.cpp:1886: Fehler: redefinition of »int 
invokeGetVecSizeForDefaultRestController(void*)«
ReflectorInterface.cpp:289: Fehler: »int 
invokeGetVecSizeForDefaultRestController(void*)« wurde vorher hier definiert
ReflectorInterface.cpp: In function »void* 
invokeGetVecElementForDefaultRestController(void*, int)«:
ReflectorInterface.cpp:1887: Fehler: redefinition of »void* 
invokeGetVecElementForDefaultRestController(void*, int)«
ReflectorInterface.cpp:290: Fehler: »void* 
invokeGetVecElementForDefaultRestController(void*, int)« wurde vorher hier 
definiert
ReflectorInterface.cpp: In function »void* 
invokeReflectionCICtorForDefaultRestController(vals)«:
ReflectorInterface.cpp:2995: Fehler: redefinition of »void* 
invokeReflectionCICtorForDefaultRestController(vals)«
ReflectorInterface.cpp:2018: Fehler: »void* 
invokeReflectionCICtorForDefaultRestController(vals)« wurde vorher hier 
definiert
ReflectorInterface.cpp: In function »void 
invokeReflectionCIDtorForDefaultRestController(void*)«:
ReflectorInterface.cpp:3002: Fehler: redefinition of »void 
invokeReflectionCIDtorForDefaultRestController(void*)«
ReflectorInterface.cpp:2025: Fehler: »void 
invokeReflectionCIDtorForDefaultRestController(void*)« wurde vorher hier 
definiert
ReflectorInterface.cpp: In function »void* 
invokeReflectionCIMethodForDefaultRestControlleraddNumbersintint(void*, vals)«:
ReflectorInterface.cpp:3007: Fehler: redefinition of »void* 
invokeReflectionCIMethodForDefaultRestControlleraddNumbersintint(void*, vals)«
ReflectorInterface.cpp:2030: Fehler: »void* 
invokeReflectionCIMethodForDefaultRestControlleraddNumbersintint(void*, vals)« 
wurde vorher hier definiert
ReflectorInterface.cpp: In function »void* 
invokeReflectionCIMethodForDefaultRestControllerpowerintint(void*, vals)«:
ReflectorInterface.cpp:3015: Fehler: redefinition of »void* 
invokeReflectionCIMethodForDefaultRestControllerpowerintint(void*, vals)«
ReflectorInterface.cpp:2038: Fehler: »void* 
invokeReflectionCIMethodForDefaultRestControllerpowerintint(void*, vals)« 
wurde vorher hier definiert
make: *** [ReflectorInterface.o] Fehler 1


What version of the product are you using? On what operating system?
Linux 2.6.32-100.28.5.el6.x86_64 #1 SMP Wed Feb 2 18:40:23 EST 2011 x86_64 
x86_64 x86_64 GNU/Linux

I am in directory:
ffead/src/Debug/ffead-server/rtdcf


Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 26 Nov 2012 at 11:00

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.